在 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 吗?
编辑:我改变了原来的问题,因为经过一些测试我意识到上述是问题的根源。谢谢。
它不是toString
nor valueOf
截断小数点后的尾随 0!
当你这样写小数时:
var num2 = 0.0100
你正在告诉你的解释器这个变量num2应包含十进制数 0.0100,即 0.01,因为最后两个零不重要。
十进制数是内存中表示为十进制数的:
0.0100
0.010
0.01
0.01000
都是相同的数字,因此它们在内存中都以相同的方式表示。无法区分它们。
所以无法知道是否num2已分配值 0.01,将该数字写入零、一个、两个或多个尾随零。
如果您想按照书写方式存储十进制数,则必须将其存储为字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)