Adobe Experience Manager 6.5 のアダプティブFormsを使用した多数計算での精度エラーのトラブルシューティング

AEM 6.5 のアダプティブFormsが、10 進数で 4 桁の精度を持つ多数の計算で正確な結果を生成しない場合は、decimal.jsbignumber.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

この問題を解決するには:

  1. decimal.jsbignumber.js などのオープンソースのJavaScript ライブラリを使用して、精度の高い計算を行います。 詳しくは、decimal.js GitHub リポジトリと bignumber.js GitHub リポジトリを参照してください。

  2. プロジェクトにライブラリを含めます。 ライブラリを使用してカスタム関数を作成し、4 桁の精度で計算を実行します。

    • メモ:Adobeは、これらのサードパーティライブラリを標準で提供またはサポートしておらず、それらの実装またはパフォーマンスについて責任を負いません。 サードパーティのライブラリを含める場合は、たとえ既知のライブラリであっても、常にセキュリティリスクや、クライアントフットプリントへの影響を検証し、関連するすべての環境で徹底的なテストを行ってください。

高度なカスタマイズや統合については、精度の高い算術演算やAEM Formsの経験がある開発者に問い合わせてください。

関連資料

AEM Sites WKND チュートリアルのコアコンポーネントに基づくアダプティブFormsのカスタム関数の概要 ​

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f