给定一个数字的字符串表示,如何在TypeScript中将其转换为数字类型?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
给定一个数字的字符串表示,如何在TypeScript中将其转换为数字类型?
var numberString: string = "1234";
var numberValue: number = /* what should I do with `numberString`? */;
当前回答
如果你只是在谈论类型,就像其他人所说的那样,parseInt()等将返回正确的类型。此外,如果由于任何原因,该值可能是数字或字符串,并且您不想调用parseInt(),则typeof表达式也将强制转换为正确的类型:
function f(value:number|string){
if(typeof value==='number'){
// value : number
}else {
// value : string
}
}
其他回答
常量myNumber=1200;//转换为十六进制值console.log(myNumber.toString(16))//将返回4b0//其他转换为十六进制的方法console.log(Math.abs(myNumber).toString(16))//将返回4b0//转换为十进制值console.log(parseFloat(myNumber.toString()).toFixed(2))//将返回1200.00
用于将其他格式转换为十进制的参考
二进制到十进制十六进制到十进制数字转换器
Typescript中有parseInt()、parseFloat()和Number()等内置函数,您可以使用它们。
使用=>convertstring(“10.00”)调用函数
parseFloat(string)=>可用于转换为float,toFixed(4)=>小数位数
parseInt(str)=>可用于转换为整数
convertstring(string){
let number_parsed: any = parseFloat(string).toFixed(4)
return number_parsed
}
在最新版本中,您可以使用,例如:
var numberString: string = "1234";
const numberValue = numberString as number;
如这里的其他答案所示,有多种方法进行转换:
Number('123');
+'123';
parseInt('123');
parseFloat('123.45')
不过,我想再提一件关于parseInt的事情。
使用parseInt时,始终传递基数参数是有意义的。对于十进制转换,即10。这是参数的默认值,因此可以省略它。对于二进制,它是2,十六进制是16。实际上,2和36之间的任何基数都有效。
parseInt('123') // 123 (don't do this)
parseInt('123', 10) // 123 (much better)
parseInt('1101', 2) // 13
parseInt('0xfae3', 16) // 64227
在一些JS实现中,parseInt将前导零解析为八进制:
尽管ECMAScript 3不鼓励使用ECMAScript5,但许多实现将以前导0开头的数字字符串解释为八进制。以下内容可能有八进制结果,也可能有十进制结果。始终指定基数以避免这种不可靠的行为。-多目标网络
代码变得更清晰是指定基数参数的一个很好的副作用。
因为parseFloat只解析基数为10的数字表达式,所以这里不需要基数参数。
更多信息:
为什么我们需要使用基数?(SO问题)所以回答“parseInt()和Number()之间的区别是什么?”