カスタムフィールドが期待どおりに四捨五入されない。 - wkb100025
環境
- Empower
- カスタムフィールド
回答
お客様は次のカスタムフィールドを使用して、(Avgwt_FP) 別のカスタムフィールドの出力を 2 d.p に切り捨てます。
Avgwt_FP ROUND((Avg_wt_FP+0.005),-2)-0.01
ここで、Avg_wt_FP = Weight_Tabs/Num_of_Tabs
Empower は内部で値を表すために二重浮動小数点を使用しており、浮動小数点の値によって不一致が発生することがあります。
コンピューターの実装でサポートされているネイティブな浮動小数点表示ではない形式で数値が表される場合は、その実装で使用する前に変換が必要になります。数値を浮動小数点形式で正確に表すことができる場合、変換は正確です。正確な表示がない場合、変換では、元の値を表示するために使用する浮動小数点を選択する必要があります。選択された表示は元の値とは異なる値になり、調整された値は四捨五入された値と呼ばれます。
予想値:
142.940 + 0.005 = 142.945
つまり 142.95 d.p
142.95 - 0.01 = 142.94
小数点を浮動小数点に変換して、切り捨て計算をする場合
これは、Empower によって指定された値です。
追加情報
Oracle と Windows では、値の処理方法にも違いがあります。例えば、Oracle は 2 進化 10 進数 (BCD) の二重浮動小数点形式を使用しますが、Windows は IEEE 二重浮動小数点形式を使用します。BCD はより正確なメソッドです。
https://www.waters.com/waters/support.htm?lid=1851937&cid=511442&type=TECN
https://www.exploringbinary.com/floating-point-converter/
https://www.theregister.com/2006/08/12/floating_point_approximation/
https://en.wikipedia.org/wiki/Floating-point_arithmetic
https://docs.microsoft.com/en-us/office/troubleshoot/access/floating-calculations-info
id100025, EMP2LIC, EMP2OPT, EMP2SW, EMP3GC, EMP3LIC, EMP3OPT, EMP3SW, EMPGC, EMPGPC, EMPLIC, EMPOWER2, EMPOWER3, EMPSW, review, SUP, エンタープライズ, レビュー