我以前遇到过这个问题,但使用的是 float 。类似于 this other post .但现在是正常数字。
我正在尝试这样做:
var
str = 'asdf_10150663120210603',
num = +str.split('_')[1];
console.log(num);
// 10150663120210603 expected
// 10150663120210604 actually resulting
所以我尝试在 Node & Chrome Inspector 中简单地输出数字。
console.log(10150663120210603);
// 10150663120210604 actually resulting
是否有任何疯狂的方法,无论是否骇人听闻,使变量等于 10150663120210603。还是我必须使用字符串?
最佳答案
JavaScript 中的 float 是 64 位 IEEE-754 浮点值。它们的尾数只有 52 位,而你的数字需要 54 位来表示。它只是四舍五入。
如果四舍五入为 10150663120210604 可以用 52 位表示。
关于javascript - 数字正在改变值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371323/