[英]How can I use Number() to convert a string to number without losing the decimal points?
我试过了
num = 0.5;
num = Number(num.toPrecision(2));
我希望结果为0.50,但返回值为0.5。
.toPrecision()
方法返回数字的字符串表示形式。 如果将其传递给Number()
,它将解析为数字,并得到一个数字值。 数字0.5
和数字0.50
正好相等; 当您打印或记录数字0.5
您不会得到任何多余的数字,因为这就是数字的默认字符串转换的工作方式。 实际上,这就是.toPrecision()
存在的原因。
JavaScript数字的本质在于,保留尾随零位数字根本没有意义。 数字在内部是二进制浮点值,因此尾随的十进制小数位没有位置。
当您处理Number
, 0.5
和0.50
相同,因此将它们存储在RAM中。 JavaScript 无法区分它们。
但是, .toPrecision()
返回一个String
,它可以区分"0.05"
和"0.5"
,因为它们是两个不同的String
,其中第一个是4个字节长,第二个是3个字节长。
因此,基本上 ,如果要输出0.50
,则只需使用.toPrecision()
, 而不要将其转换回Number
。
0.5 == 0.50
"0.5" != "0.50"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.