在 javascript 中,我注意到 toString 和 valueOf 在小数点后 chop 尾随 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
也不是 valueOf
chop 小数点后的尾随 0!
当你这样写小数时:
var num2 = 0.0100
你告诉你的解释器变量 num2 应该包含十进制数 0.0100,即 0.01,因为最后两个零不重要。
十进制数是内存表示为十进制数:
0.0100
0.010
0.01
0.01000
都是完全相同的数字,因此它们在内存中的表示方式都相同。无法区分它们。
因此,不可能知道是否已分配 num2 值 0.01,并用零、一个、两个或多个尾随零写入该数字。
如果您想以写入的方式存储十进制数,则必须将其存储为字符串。
关于javascript - toString 和 valueOf chop 小数点后的尾随 0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2875281/