javascript parseInt检测溢出

时间:2016-08-30 13:31:23

标签: javascript string parsing

使用parseInt方法解析字符串中的整数时,如何检测是否发生上溢/下溢?

我想到的方法是将Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER转换为字符串,并检查要检查的字符串是否在此范围内。

2 个答案:

答案 0 :(得分:3)

根据MDN Number.MIN_SAFE_INTEGER 常量表示JavaScript中的最小安全整数( - (2 ^ 53 - 1))和 Number.MAX_SAFE_INTEGER 常量表示JavaScript中的最大安全整数(2 ^ 53 - 1)。所以它会起作用

var str = '00000010323245498540985049580495849058043';
var num = parseInt(str,10); 
if( num > Number.MAX_SAFE_INTEGER) {
 alert("Overflow!"); 
}

这是小提琴

https://jsfiddle.net/Refatrafi/91rcnoru/2/

答案 1 :(得分:0)

您需要Number.isSafeInteger()

此外,max int limit为2^53 - 1

此外,您可以将数据存储在Float中,这样您就可以完全避免这个问题。如果你的应用程序需要知道溢出条件,也许发布问题陈述,可能有更好的方法来处理它。