繁体   English   中英

如何使用Number()将字符串转换为数字而不丢失小数点?

[英]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数字的本质在于,保留尾随零位数字根本没有意义。 数字在内部是二进制浮点值,因此尾随的十进制小数位没有位置。

当您处理Number0.50.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM