【发布时间】:2013-05-05 03:20:31
【问题描述】:
将字符串转换为数字会产生递增值:
var n = '9999999999999999';
console.log(n); // -> 9999999999999999
var nn = Number(n)
console.log(nn); // -> 10000000000000000
如何避免这种情况?
【问题讨论】:
-
如何避免什么?我想,任意精度是 IEEE754 的一部分。
-
@raina77ow 如何避免这种行为?我应该怎么做才能获得值为 99999999999999999 的 Number 对象?或者也许如何检查数字是否会增加?如果我将
n更改为'999'Number值是999。 -
@PrasathK 我不能。我从 HTML 页面的输入中获取这个值。
-
您无法获得值为 9999999999999999 的 JS 编号 - 出于同样的原因,您无法在单个字节中存储超过 256 个不同的值。解决此问题的一种可能方法是使用实现
BigInteger数学的现成库 - 例如 jsbn.js
标签: javascript string numbers type-conversion