如何使用parseInt方法在解析字符串时检测溢出/下溢?
我想到的方法是将Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER转换为字符串,然后检查要检查的字符串是否在此范围内。
如何使用parseInt方法在解析字符串时检测溢出/下溢?
我想到的方法是将Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER转换为字符串,然后检查要检查的字符串是否在此范围内。
var str = '00000010323245498540985049580495849058043';
var num = parseInt(str,10);
if( num > Number.MAX_SAFE_INTEGER) {
alert("Overflow!");
}
您需要使用Number.isSafeInteger()
函数。
另外,最大整数限制为2^53 - 1
。
此外,您可以将数据存储在浮点数中,这样可以完全避免问题。如果您的应用程序需要了解溢出条件,请发布问题陈述,可能有更好的方法来处理它。
var num = parseInt(str,10); if( num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) alert("Overflow/Underflow!");
如果数字超出了安全范围,将会弹出“溢出/下溢”警告。 - Niet the Dark Absol