我正在尝试将字符串转换为Javascript中的数字,但这是我的问题:
var string = "068999999501111443";
parseInt(string); // 68999999501111440
Number(string); // 68999999501111440
为什么会发生这种情况以及如何解决?
由于
答案 0 :(得分:1)
这是因为数字太大而无法准确存储。它被存储为浮点数,只能存储一定的精度。除了它的最大精度之外,你还会看到奇怪的舍入误差。
对于具有大量小数位的小数,您将获得类似的效果。这是众所周知的,因为它往往更频繁地发生,但它与此处发生的效果完全相同。