我试过
num = 0.5;
num = Number(num.toPrecision(2));
我希望结果为0.50,但它返回0.5。
答案 0 :(得分:2)
.toPrecision()
方法返回数字的字符串表示形式。如果将其传递给Number()
,它会将其解析为数字,结果会得到一个数字值。数字0.5
和数字0.50
完全相同;当您打印或记录号码0.5
时,您不会获得任何额外的数字,因为默认字符串数字转换的工作方式。事实上,这就是.toPrecision()
存在的原因。
JavaScript数字的本质是这样的,想要保留尾随小数零位数是没有意义的。数字是内部的二进制浮点值,因此尾随十进制小数位没有位置。
答案 1 :(得分:1)
当您处理Number
时,0.5
和0.50
都是相同的,因此会将其存储在RAM中。 JavaScript有 no 方式区分它们。
但是,.toPrecision()
会返回String
,其中可以区分"0.05"
和"0.5"
,因为它们是两个不同的{{1}其中第一个是4个字节长,第二个是3个字节长
基本上,如果您想输出String
,那么只需使用0.50
并执行而不是将其转换回{{1} }。
.toPrecision()