Javascript array.push更改长整数?

时间:2015-07-08 06:36:20

标签: javascript arrays

您好我的javascript代码如下。

<script>
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits;

function myFunction() {
    fruits.push(611087636212662272);
    document.getElementById("demo").innerHTML = fruits;
}
</script>

输出

Banana,Orange,Apple,Mango,611087636212662300

我需要输出为:

Banana,Orange,Apple,Mango,611087636212662272

我进入&#34; 611087636212662272&#34;那么为什么Javascript会返回&#34; 611087636212662300&#34;作为输出。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

解决方案 - 添加&#34;在值中,它将为fruits数组添加精确值。



    fruits.push("611087636212662272"); // this will push exact value

答案 1 :(得分:0)

数字太大而且精度不高。 JavaScript数字是64位浮点值,最大精确整数值是2 ^ 53,或9007199254740992.

ECMA Section 8.5 - Numbers

  

请注意,幅度不大于2 ^ 53的所有正整数和负整数都可以在Number类型中表示(实际上,整数0有两个表示,+ 0和-0)。

答案 2 :(得分:0)

这是达成的另一种方式

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var fruitNum  = fruits + ' 611087636212662272';
document.getElementById("demo").innerHTML = fruitNum;