Number.MAX_SAFE_INTEGER
åºçº¿
广æ³å¯ç¨
èª 2015å¹´9æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Number.MAX_SAFE_INTEGER éææ°æ®å±æ§è¡¨ç¤ºå¨ JavaScript 䏿大çå®å
¨æ´æ°ï¼253 â 1ï¼ã
å¯¹äºæ´å¤§çæ´æ°ï¼è¯·èèä½¿ç¨ BigIntã
å°è¯ä¸ä¸
const x = Number.MAX_SAFE_INTEGER + 1;
const y = Number.MAX_SAFE_INTEGER + 2;
console.log(Number.MAX_SAFE_INTEGER);
// Expected output: 9007199254740991
console.log(x);
// Expected output: 9007199254740992
console.log(x === y);
// Expected output: true
å¼
9007199254740991ï¼9,007,199,254,740,991ï¼æè
约 9 åä¸äº¿ï¼ã
Number.MAX_SAFE_INTEGER ç屿§ç¹æ§ | |
|---|---|
| å¯å | å¦ |
| 坿䏾 | å¦ |
| å¯é ç½® | å¦ |
æè¿°
åç²¾åº¦æµ®ç¹æ ¼å¼åªæ 52 ä½ç¨äºè¡¨ç¤ºå°¾æ°ï¼å æ¤å®åªè½å®å
¨å°è¡¨ç¤ºä»äº -(253 â 1) å 253 â 1 ä¹é´çæ´æ°ãæ¬æä¸ï¼âå®å
¨âæçæ¯è½å¤ç²¾ç¡®è¡¨ç¤ºæ´æ°å¹¶æ£ç¡®æ¯è¾å®ä»¬ãä¾å¦ï¼Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 çç»æå°ä¸ºçï¼è¿å¨æ°å¦ä¸æ¯ä¸æ£ç¡®çãæå
³æ´å¤ä¿¡æ¯ï¼è¯·åé
Number.isSafeInteger()ã
ç±äº MAX_SAFE_INTEGER æ¯ Number çéæå±æ§ï¼ä½ åºè¯¥å§ç»å°å
¶ä½¿ç¨ä¸º Number.MAX_SAFE_INTEGERï¼è䏿¯ä¸ä¸ªæ°åå¼ç屿§ã
示ä¾
>MAX_SAFE_INTEGER çè¿åå¼
Number.MAX_SAFE_INTEGER; // 9007199254740991
MAX_SAFE_INTEGER å EPSILON ä¹é´çå ³ç³»
Number.EPSILON æ¯ 2-52ï¼è MAX_SAFE_INTEGER æ¯ 253 â 1ï¼å®ä»¬é½æºèªå°¾æ°ç宽度ï¼å³ 53 ä½ï¼æé«ä½å§ç»ä¸º 1ï¼ãå°å®ä»¬ç¸ä¹ä¼å¾å°ä¸ä¸ªé常æ¥è¿ä½ä¸çäº 2 çå¼ã
Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.max_safe_integer> |