JSON Number 타입의 안전한 한계값
Created:
Updated:
Number 타입의 안전한 한계값
JSON의 Number Type에 9007199254740992
+ 1 이상을 입력하면 제대로 표시하지 못하는 수가 발생했다.
9007199254740993
을 넣게되면 9007199254740992
로 출력
9007199254740994
를 넣게되면 정상적으로 9007199254740994
로 출력
9007199254740995
를 넣게 되면 9007199254740996
으로 출력
즉 제대로 표시되는 수도 있지만 의도대로 나오지 않는 수도 발생했다.
Number.MAX_SAFE_INTEGER
를 확인하면9007199254740991
가 나오는데 테스트해보니9007199254740992
까지는 값이 Number에 정상적으로 들어갔다.
그래도 상수로 정의되어있는Number.MAX_SAFE_INTEGER
값인9007199254740991
를 사용하는게 제일 안전할 것 같다.
9007199254740992
값은2^53
이다.
2의 0~60 제곱
2의 거듭제곱을 나열해 보았다.
거듭제곱 | 값 |
---|---|
2의 0 (2^0) | 1 |
2의 1 (2^1) | 2 |
2의 2 (2^2) | 4 |
2의 3 (2^3) | 8 |
2의 4 (2^4) | 16 |
2의 5 (2^5) | 32 |
2의 6 (2^6) | 64 |
2의 7 (2^7) | 128 |
2의 8 (2^8) | 256 |
2의 9 (2^9) | 512 |
2의 10 (2^10) | 1024 |
2의 11 (2^11) | 2048 |
2의 12 (2^12) | 4096 |
2의 13 (2^13) | 8192 |
2의 14 (2^14) | 16384 |
2의 15 (2^15) | 32768 |
2의 16 (2^16) | 65536 |
2의 17 (2^17) | 131072 |
2의 18 (2^18) | 262144 |
2의 19 (2^19) | 524288 |
2의 20 (2^20) | 1048576 |
2의 21 (2^21) | 2097152 |
2의 22 (2^22) | 4194304 |
2의 23 (2^23) | 8388608 |
2의 24 (2^24) | 16777216 |
2의 25 (2^25) | 33554432 |
2의 26 (2^26) | 67108864 |
2의 27 (2^27) | 134217728 |
2의 28 (2^28) | 268435456 |
2의 29 (2^29) | 536870912 |
2의 30 (2^30) | 1073741824 |
2의 31 (2^31) | 2147483648 |
2의 32 (2^32) | 4294967296 |
2의 33 (2^33) | 8589934592 |
2의 34 (2^34) | 17179869184 |
2의 35 (2^35) | 34359738368 |
2의 36 (2^36) | 68719476736 |
2의 37 (2^37) | 137438953472 |
2의 38 (2^38) | 274877906944 |
2의 39 (2^39) | 549755813888 |
2의 40 (2^40) | 1099511627776 |
2의 41 (2^41) | 2199023255552 |
2의 42 (2^42) | 4398046511104 |
2의 43 (2^43) | 8796093022208 |
2의 44 (2^44) | 17592186044416 |
2의 45 (2^45) | 35184372088832 |
2의 46 (2^46) | 70368744177664 |
2의 47 (2^47) | 140737488355328 |
2의 48 (2^48) | 281474976710656 |
2의 49 (2^49) | 562949953421312 |
2의 50 (2^50) | 1125899906842624 |
2의 51 (2^51) | 2251799813685248 |
2의 52 (2^52) | 4503599627370496 |
2의 53 (2^53) | 9007199254740992 |
2의 54 (2^54) | 18014398509481984 |
2의 55 (2^55) | 36028797018963968 |
2의 56 (2^56) | 72057594037927936 |
2의 57 (2^57) | 144115188075855872 |
2의 58 (2^58) | 288230376151711744 |
2의 59 (2^59) | 576460752303423488 |
2의 60 (2^60) | 1152921504606846976 |
Comments