에서 두 개의 큰 변수를 비교하고, 내가 좋아하는 비교해야 : 내 테스트 비교가 잘못된 결과를 얻을 수 모두에서내가이 개 큰 변수가 자바 스크립트
var a = 15000000000000000000000001 // integer
var b = "15000000000000000000000000" // string
. 예 :
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
,536,913,632 : 문자열
var a = "1500000000000000000000001" var b = "15000000000000000000000000" a > b // return true and is wrong
내 솔루션으로 정수
var a = 15000000000000000000000001 var b = 15000000000000000000000000 a > b // return false and is wrong
변환 var에에
변환 var에 B 10
제 질문은 발견 된 해결책이 올바른지 아니면 앞으로 문제가 생길 수 있습니까?
죄송합니다. 건설적이지 않아서 죄송 합니다만, 데이터 유형에 "그래, 뭐든간에"접근하는 자바 스크립트와 같은 언어에서 발생하는 문제의 종류가 아닙니다! – bazza
그것은'00000001> 900' – perreal
에 대해 얻고 자하는 것에 달려 있습니다. 제 변수는 0으로 시작하지 않습니다. 기본적으로 숫자지만, 자바 스크립트가 큰 숫자에 문제가있는 한 문자열로 변환해야합니다. –