给定一个数字的字符串表示,如何在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`? */;
当前回答
在解释Ryan所说的内容时,TypeScript概括了JavaScript的习惯用法。
var n = +"1"; // the unary + converts to number
var b = !!"2"; // the !! converts truthy to true, and falsy to false
var s = ""+3; // the ""+ converts to string via toString()
JavaScript类型转换中所有有趣的深入细节。
其他回答
Typescript中有parseInt()、parseFloat()和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()之间的区别是什么?”
您可以遵循以下任一方式。
var str = '54';
var num = +str; //easy way by using + operator
var num = parseInt(str); //by using the parseInt operation
在最新版本中,您可以使用,例如:
var numberString: string = "1234";
const numberValue = numberString as number;
有三种方法
let a = + '12';
let b = parseInt('12' , 10); // 10 means decimal number
let c = Number('12');