javascript parseInt() failing?
javascript parseInt() failing?
n = "11004691915666669"
parseInt(n)
parseInt(n, 10)
两个结果都是:11004691915666668这是一分之一。 我测试了一些其他值,它们转换正确。 这是库中的错误还是有更好的转换方法?
有关更多详细信息,请参阅此 SO 问题。您的值超出了 Javascript 可以完全准确地表示的最大整数。
在引擎盖下,Javascript不理解整数,一切都是浮点数。当你达到非常大的数字时,你正在达到准确性的降低。
来自这里给出的 MDN 的 Javascript 参考。
数字的整数范围定义如下:
var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;
这就是为什么由于您的数字超过了 Javascript 预设的最大 Int 值,parseInt 方法仅返回位于 Javascript 中数字的整数范围内的整数值,如上定义。
相关文章:
- 关于 Javascript 中 parseInt() 的说明
- 为什么这是真的:parseInt(1111111111111,2)===parseInt(111111111111,2)
- jquery中出现NaN错误.已经尝试过ParseInt,但仍然不起作用
- parseInt("08") returns 0
- parseInt()方法如何返回整数
- parseInt的行为很奇怪——可能吧
- JS parseInt带逗号的字符串
- 数组上的ParseInt()方法
- 为什么parseInt()比Firefox中的*1慢得多
- Reg Ex Match Failing
- 为什么不'将字符串转换为int不正确(parseInt)
- JS parseInt() issue
- parseInt() 出乎意料地等同于 NaN
- Javascript parseInt 函数不起作用
- 在数组上应用 parseInt 会产生奇怪的结果
- JavaScript RegEx Match Failing
- 在 JavaScript 中使用 parseFloat() 或 parseInt() 和正则表达式(转换 CSV 文件)
- 即使使用 parseInt,我也无法从输入元素中获取数值
- 为什么parseInt('08')给出0,而parseInt('07')则给出7
- javascript parseInt() failing?