Adobe Experience Manager 6.5에서 적응형 Forms을 사용하여 대량 계산 시 정밀도 오류 문제 해결
AEM 6.5의 적응형 Forms이 소수점 이하 4자리 정밀도를 사용하는 큰 숫자 계산에 대한 정확한 결과를 생성하지 않는 경우 decimal.js 또는 bignumber.js과(와) 같은 오픈 소스 JavaScript 라이브러리를 사용하는 것이 좋습니다. 이러한 라이브러리는 금융 양식과 같은 중요한 사용 사례에서 규정 준수 및 정확성을 보장하는 데 도움이 됩니다.
설명 description
환경
- 제품: Adobe Experience Manager(AEM) Forms
- 버전: AEM 6.5(온-프레미스)(Foundation + 핵심 구성 요소)
문제/증상
적응형 Forms은 소수점 이하 4자리 정밀도로 큰 숫자(일반적으로 7~10자리)를 정확하게 계산하지 않습니다. 반올림 오류 없이 정확한 값이 필요한 재무 또는 준수 양식에 영향을 줄 수 있습니다. 이 동작은 현재 제품 구현의 부동 소수점 정밀도 손실로 인해 발생합니다.
예:
-
곱하기:
예상:
7384921.1234 × 84275931.56 = 622,347,918,234,567.7890실제:
622347918234567.78 -
빼기:
예상:
$193,847,562,983,745.4321 - $6,789.1234 = $193,847,562,976,956.3087실제:
$193,847,562,976,956.3100
기본 적응형 Forms 기능은 이 수준의 정밀도를 지원하지 않습니다.
해결 방법 resolution
이 문제를 해결하려면 다음을 수행하십시오.
-
고정밀 산술에는
decimal.js또는bignumber.js과(와) 같은 오픈 소스 JavaScript 라이브러리를 사용합니다. 자세한 내용은 decimal.js GitHub 저장소 및 bignumber.js GitHub 저장소를 참조하십시오. -
프로젝트에 라이브러리를 포함합니다. 라이브러리를 사용하여 사용자 지정 함수를 만들어 소수점 4자리 정확도로 계산을 수행합니다.
- 참고: Adobe은 이러한 타사 라이브러리를 즉시 제공하거나 지원하지 않으며, 구현이나 성능에 대한 책임이 없습니다. 잘 알려진 타사 라이브러리를 포함할 경우 항상 보안 위험, 클라이언트 설치 공간 영향을 검증하고 모든 관련 환경에서 철저한 테스트를 보장합니다.
고급 사용자 지정 또는 통합에 대해서는 고정밀 산술 및 AEM Forms 경험이 있는 개발자에게 문의하십시오.