2 つの大きな変数があり、次のように比較する必要があります。
var a = 15000000000000000000000001 // integer
var b = "15000000000000000000000000" // string
私のすべてのテスト比較で、間違った結果が得られます。例えば:
変数 b を整数に変換します
変数 a = 1500000000000000000000001 変数 b = 1500000000000000000000000 a > b // false を返し、間違っています
var a を文字列に変換します
var a = "150000000000000000000001" var b = "1500000000000000000000000" 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
私の質問は、見つかった解決策が正しいものなのか、それとも将来的に問題が発生するのかということです。