在javascript中,我注意到toString和valueOf在小数后截断尾随0。例如:
var num = 0.00
var num2 = 0.0100
num.valueOf() or num.toString() // outputs 0
num2.valueOf() or num2.toString() // outputs 0.01
这是正常的行为,是否有某种方法可以保留尾随的0?
编辑:我改变了我原来的问题,因为我在经过一些测试后意识到上述问题是根源。感谢。答案 0 :(得分:4)
在小数点后截断尾随0不是toString
也不是valueOf
当你以这种方式写小数时:
var num2 = 0.0100
您告诉您的翻译,变量 num2 应包含十进制数0.0100,即0.01,因为最后两个零值不重要。
十进制数是以十进制数表示的内存:
0.0100
0.010
0.01
0.01000
是完全相同的数字,因此它们在内存中的表示方式相同。无法区分它们。
因此,无法知道是否已分配 num2 值0.01来编写具有零个,一个,两个或更多尾随零的数字。
如果要按照编写方式存储十进制数,则必须将其存储为字符串。
答案 1 :(得分:2)
javascript中的数字没有尾随零 - 如果可以的话,你会在哪里停下来? 这是正常的行为。 如果返回字符串 -
,可以强制它们出现var n= '0.0'
alert(n)>> 0
alert(n.toFixed(5))>> '0.00000'
alert(n.toPrecision(5))>>'0.0000'