我以前遇到过这个问题,但是有浮点数。类似于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中的浮点数是64位IEEE-754浮点值。它们的尾数只有52位,而您的数字要求用54位来表示。它只是被四舍五入。
如果四舍五入为10150663120210604,则可以52位表示。