결과를 외웠는지가 아니라, 이진 부동소수점의 한계를 알고 도메인에 맞는 대응을 골라 쓸 수 있는지 가르려는 질문이다.
JavaScript의 number는 IEEE 754 배정밀도 부동소수점 한 형식뿐인데, 0.1·0.2 같은 십진 분수는 이진수로 정확히 떨어지지 않아 가까운 값으로 근사된다. 그 근사값끼리 더하면 0.30000000000000004 같은 값이 나와 === 0.3 비교가 실패한다. 대응은 도메인 정확도에 따라 갈린다. 금액처럼 정확해야 하면 센트·원 단위 정수로 스케일링하거나 decimal 라이브러리·BigInt를 쓰고, 그래픽·물리처럼 작은 오차가 허용되면 Math.abs(a - b) < Number.EPSILON 같은 허용 오차 비교로 푼다.
금액 계산을 number에서 정수·decimal로 옮겨 정산 오차를 줄여 본 경험이 있다면 도메인별 대응 사례로 연결할 수 있다
공통 실수 비교 헬퍼를 만들어 본 적이 있다면 허용 오차 기준 선택 관점으로 엮을 수 있다
오차 허용 범위를 PM·QA와 합의해 본 경험이 있다면 정확도 요구를 코드로 옮기는 과정으로 말할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.