# 수치 상태 정책

Core2026 제품 계산은 JavaScript `number`와 PostgreSQL/JSON이 보존하는 정밀도를
그대로 사용합니다. Ref의 PHP 문자열 변환이나 MariaDB `FLOAT` 저장 형식을 맞추기
위한 유효숫자 재양자화는 제품 상태에 적용하지 않습니다.

## 실수 상태

- 기술과 민심처럼 소수 누적이 가능한 값은 계산 결과를 `Math.fround()`,
  `toPrecision()` 또는 `Number.EPSILON`으로 보정하지 않습니다.
- 비교 도구는 Ref 저장 형식을 해석할 수 있지만 그 투영을 Core 제품 상태에 다시
  적용하지 않습니다.
- 화면 표시의 자리수와 로그 포맷은 상태 정밀도와 별개의 사용자 출력 계약입니다.

## 정수 상태

- 인구, 내정치, 자원, 경험과 공헌처럼 도메인에서 정수인 상태는 각 action의
  명시된 정수화 경계에서 `Math.round()`를 적용합니다.
- 부상 적용 뒤 최종 능력치와 전투 사망자 40%/60% 분할은 각각 기존 도메인 규칙대로
  `Math.trunc()`를 유지합니다.
- 수입은 장수 급여 비율을 계산할 때까지 소수 원값을 유지하고, 국가의 최종 정수
  상태를 갱신할 때 반올림합니다.

이 정수화와 처리 순서는 상태 의미와 다음 action 입력을 결정하므로 제거 대상
호환 shim이 아닙니다.
