Adobe Experience Manager 6.5 のアダプティブFormsを使用した多数計算での精度エラーのトラブルシューティング
AEM 6.5 のアダプティブFormsが、10 進数で 4 桁の精度を持つ多数の計算で正確な結果を生成しない場合は、decimal.js や bignumber.js などのオープンソースのJavaScript ライブラリの使用を検討します。 これらのライブラリは、財務フォームなどの重要なユースケースでコンプライアンスと精度を確保するのに役立ちます。
説明 description
環境
- 商品:Adobe Experience Manager(AEM)Forms
- バージョン:AEM 6.5 (オンプレミス)(基盤+ コアコンポーネント)
問題/症状
アダプティブ Formsでは、大きな数値(通常は 7 ~ 10 桁)を小数点以下 4 桁の精度で正確に計算しません。 これは、丸めエラーを使用せずに正確な値を入力する必要がある財務フォームやコンプライアンスフォームに影響を与える可能性があります。 この動作は、現在の製品実装における浮動小数点精度の損失が原因です。
例:
-
乗算:
予測:
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の経験がある開発者に問い合わせてください。