检查是否可以在javascript中成功完成数学运算(添加,乘法)?

时间:2017-06-03 15:42:43

标签: javascript

给定一组特定的“字符串”表示加法运算中的整数,如何知道javascript中的计算是否可行?例如。

2 + 2(绝对可能)

20000000000000000 - 1(不可能)

2e50 + 2e60(不可能)

200000 + 5 + 40 + 300 + 2000 + 10000(可能)

这同样适用于乘法,几个整数,是否适用?

2*2(可能)

3*2e200(可能)

4*-3e700(不可能)

1 个答案:

答案 0 :(得分:2)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
打开浏览器错误控制台并查看其功能。

"use strict";
var i,
    numbers=[
        2+2,
        20000000000000000 - 1,
        2e50 + 2e60,
        200000 + 5 + 40 + 300 + 2000 + 10000,
        2*2,
        3*2e200,
        4*-3e700
    ],
    s=numbers.length;
for(i=0;i<s;i++){
    console.log(
        'The value of array index '+i+' is'+
        ((Number.isSafeInteger((numbers[i])))?'':' NOT')+
        ' Safe'
    );
}

来自控制台的输出:

The value of array index 0 is Safe
The value of array index 1 is NOT Safe
The value of array index 2 is NOT Safe
The value of array index 3 is Safe
The value of array index 4 is Safe
The value of array index 5 is NOT Safe
The value of array index 6 is NOT Safe

这些数字中的一些可能是准确的,但无法进行比较以确定哪个数字更大