Skip to content
← Back to rules

eslint/no-loss-of-precision 정확성

This rule is turned on by default.

작동 방식

숫자 리터럴의 정밀도 손실을 허용하지 않습니다.

왜 문제가 될까요?

특정 상황에서 예기치 못한 결과를 초래할 수 있습니다.
예를 들어, 수학 연산을 수행할 때입니다.

자바스크립트에서 숫자는 이중 정밀도 부동소수점 형식으로 저장되며, 이는 IEEE 754 표준에 따라 이루어집니다. 이러한 구조상 숫자는 일정한 자리 수까지 정확도를 유지할 수 있습니다. 프로그래머가 추가적인 자릿수를 입력하면, 해당 자릿수는 숫자 타입으로 변환되는 과정에서 사라지게 되고, 이로 인해 예기치 못하거나 잘못된 동작이 발생할 수 있습니다.

예시

이 규칙에 부적절한 코드 예시:

javascript
var x = 2e999;
javascript
var x = 9007199254740993;
javascript
var x = 5123000000000000000000000000001;
javascript
var x = 1230000000000000000000000.0;
javascript
var x = 0x200000_0000000_1;

이 규칙에 적절한 코드 예시:

javascript
var x = 12345;
javascript
var x = 123.456;
javascript
var x = 123.0;
javascript
var x = 123e34;
javascript
var x = 0x1fff_ffff_fff_fff;

사용 방법

설정 파일 또는 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용하세요:

json
{
  "rules": {
    "no-loss-of-precision": "error"
  }
}
bash
oxlint --deny no-loss-of-precision

참고 자료