Number.MAX_SAFE_INTEGER

Number.MAX_SAFE_INTEGER μƒμˆ˜λŠ” JavaScript μ—μ„œ μ•ˆμ „ν•œ μ΅œλŒ€ μ •μˆ˜κ°’μ„ λ‚˜νƒ€λ‚Έλ‹€. (2^53 - 1)

const x = Number.MAX_SAFE_INTEGER + 1;
const y = Number.MAX_SAFE_INTEGER + 2;

Number.MAX_SAFE_INTEGER; // 9007199254740991
x; // 9007199254740992
y; // 9007199254740992

x === y; // true

μƒμˆ˜λΌ λŒ€λ¬Έμžλ„€

Description

MAX_SAFE_INTEGER μƒμˆ˜λŠ” 9007199254740991(9,007,199,254,740,991 λ˜λŠ” μ•½ 9000μ‘°)의 값을 κ°€μ§„λ‹€. 이 κ°’μ˜ μ΄μœ λŠ” JavaScriptκ°€ IEEE 754 μ—μ„œ 기술된 배정밀도 λΆ€λ™μ†Œμˆ˜μ  ν˜•μ‹ μˆ«μžμ²΄κ³„λ₯Ό μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ—, 이둜 인해 -(253 - 1)κ³Ό 253 - 1 μ‚¬μ΄μ˜ 수만 μ•ˆμ „ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆλ‹€.

μ—¬κΈ°μ„œ μ•ˆμ „ν•¨μ΄λž€ μ •μˆ˜λ₯Ό μ •ν™•ν•˜κ³  μ˜¬λ°”λ₯΄κ²Œ 비ꡐ할 수 μžˆμŒμ„ μ˜λ―Έν•œλ‹€. 예λ₯Ό λ“€μ–΄

Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2;
// trueκ°€ λ°˜ν™˜λœλ‹€.

μ΄λŠ” μˆ˜ν•™μ μœΌλ‘œ μ˜³μ§€ μ•Šλ‹€. Number.isSafeInteger()λ₯Ό μ°Έκ³ ν•˜μž

MAX_SAFE_INTEGERλŠ” Number의 정적 속성이기 λ•Œλ¬Έμ—, 직접 μƒμ„±ν•œ Number 객체의 속석이 μ•„λ‹ˆλΌ Number.MAX_SAFE_INTEGER ν˜•μ‹μœΌλ‘œ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

Example

MAX_SAFE_INTEGER의 λ°˜ν™˜κ°’

Number.MAX_SAFE_INTEGER; // 9007199254740991

μ•ˆμ „ν•œ μ •μˆ˜λ³΄λ‹€ 큰 숫자

μ΄λŠ” 뢀동 μ†Œμˆ˜μ μ—μ„œλŠ” 0κ³Ό 같은 정상 μ΄ν•˜μ˜ 정밀도 경우λ₯Ό μ œμ™Έν•˜κ³  μ‹€μ œλ‘œλŠ” μ†Œμˆ˜μ  μ΄ν•˜ μžλ¦Ώμˆ˜κ°€ "1"μ΄λ―€λ‘œ 2둜 λ°˜ν™˜ν•œλ‹€.

Number.MAX_SAFE_INTEGER * Number.EPSILON;

πŸ€” 2κ°€ μ•„λ‹ˆλΌ 1.9999999999999998 이 λ‚˜μ˜€λŠ”λ°..

Polyfill

if (!Number.MAX_SAFE_INTEGER) {
    Number.MAX_SAFE_INTEGER = 9007199254740991; // Math.pow(2, 53) - 1;
}

Browser compatibility

IE μ§€μ›μ•ˆλ¨

Last updated

Was this helpful?