为什么JavaScript会自动转换一些数值
我在JavaScript中使用数字数据类型完成了相同的过程为什么JavaScript会自动转换一些数值,javascript,Javascript,我在JavaScript中使用数字数据类型完成了相同的过程 var num = 9223372036854775807; 但当我尝试在浏览器中打印此变量时 alert(num) 该值更改为9223372036854776000 有什么想法吗?Javascript数字实际上是。可以精确存储的最大整数是253,远小于263-1 Javascript将long存储为Javascript数字(64位浮点)。最大值为9223372036854776000 您是执行数字运算还是将其存储为字符串?因为js
var num = 9223372036854775807;
但当我尝试在浏览器中打印此变量时
alert(num)
该值更改为9223372036854776000
有什么想法吗?Javascript数字实际上是。可以精确存储的最大整数是253,远小于263-1
Javascript将long存储为Javascript数字(64位浮点)。最大值为9223372036854776000
您是执行数字运算还是将其存储为字符串?因为js中数字的最大整数值是9007199254740992。有关更多信息,请参见。问题与@missingno所描述的完全相同,如果您确实需要处理大数字,则最好的解决方案可能是BigNumber类:
值得注意的是,与其他语言相比,这不是一种有效的计算方法,但它可能是JavaScript中最容易管理的方法。I执行数值操作。我实际上创建了我自己的库,我想创建像C这样的Int64类#
alert( Math.pow(2, 53) - 1 ) // 9007199254740991
alert( Math.pow(2, 53) ) // 9007199254740992
alert( Math.pow(2, 53) + 1 ) // 9007199254740992