使用parseInt方法解析字符串中的整数时,如何检测是否发生上溢/下溢?
我想到的方法是将Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER转换为字符串,并检查要检查的字符串是否在此范围内。
答案 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!");
}
这是小提琴
答案 1 :(得分:0)
此外,max int limit为2^53 - 1
此外,您可以将数据存储在Float中,这样您就可以完全避免这个问题。如果你的应用程序需要知道溢出条件,也许发布问题陈述,可能有更好的方法来处理它。