У меня есть 2 большие переменные, и мне нужно сравнить, например:
var a = 15000000000000000000000001 // integer
var b = "15000000000000000000000000" // string
Во всех моих тестовых сравнениях получаются неправильные результаты. например:
Преобразовать var b в целое число
var a = 15000000000000000000000001 var b = 15000000000000000000000000 a > b // return false and is wrong
Преобразовать var a в строку
var a = "1500000000000000000000001" var b = "15000000000000000000000000" a > b // return true and is wrong
Мое решение:
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
Мой вопрос заключается в том, является ли найденное решение правильным или возникнут проблемы в будущем?
00000001 > 900
- person perreal   schedule 27.06.2013