Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么JavaScript会自动转换一些数值_Javascript - Fatal编程技术网

为什么JavaScript会自动转换一些数值

为什么JavaScript会自动转换一些数值,javascript,Javascript,我在JavaScript中使用数字数据类型完成了相同的过程 var num = 9223372036854775807; 但当我尝试在浏览器中打印此变量时 alert(num) 该值更改为9223372036854776000 有什么想法吗?Javascript数字实际上是。可以精确存储的最大整数是253,远小于263-1 Javascript将long存储为Javascript数字(64位浮点)。最大值为9223372036854776000 您是执行数字运算还是将其存储为字符串?因为js

我在JavaScript中使用数字数据类型完成了相同的过程

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