Files
core2026/docs/numeric-state-policy.md
T
Hide_D 60dcf815ea refactor(logic): 과도한 수치 호환 보정을 제거한다
Core 수치 상태는 JavaScript와 PostgreSQL의 자연 정밀도를 유지한다. 정수 상태 경계와 절삭, 수입 배분 및 사망자 분할 순서는 보존한다.
2026-08-24 19:17:06 +00:00

1.3 KiB

수치 상태 정책

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이 아닙니다.