我有 2 个大变量,我需要比较:
var a = 15000000000000000000000001 // integer
var b = "15000000000000000000000000" // string
在我所有的测试比较中得到错误的结果。例如:
将 var b 转换为整数
var a = 150000000000000000000000001 变量 b = 15000000000000000000000000 a > b // 返回 false 并且是错误的
将 var a 转换为字符串
var a = "15000000000000000000000001" var b = "150000000000000000000000000" a > b // 返回 true 并且是错误的
我的解决方案:
function compareCheck(a,b){
if (a.length > b.length) {
return true;
}
else if (a.length == b.length) {
if (a.localeCompare(b) > 0) {
return true
}
else return false;
}
else return false;
}
var a = "15000000000000000000000001"
var b = "15000000000000000000000000"
compareCheck(a,b) // return true and is correct
var a = "1500000000000000000000001"
var b = "15000000000000000000000000"
compareCheck(a,b) // return false and is correct
我的问题是找到的解决方案是否正确,或者将来会出现问题?