メインコンテンツへスキップ
Waters Japan

カスタムフィールドが期待どおりに四捨五入されない。 - wkb100025

Article number: 100025To English version

環境

  • 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 は内部で値を表すために二重浮動小数点を使用しており、浮動小数点の値によって不一致が発生することがあります。

コンピューターの実装でサポートされているネイティブな浮動小数点表示ではない形式で数値が表される場合は、その実装で使用する前に変換が必要になります。数値を浮動小数点形式で正確に表すことができる場合、変換は正確です。正確な表示がない場合、変換では、元の値を表示するために使用する浮動小数点を選択する必要があります。選択された表示は元の値とは異なる値になり、調整された値は四捨五入された値と呼ばれます。

clipboard_ef6db04a93fdec0d7fe5a9306b29b3035.png

予想値:

142.940 + 0.005 = 142.945

つまり 142.95 d.p

142.95 - 0.01 = 142.94

 

小数点を浮動小数点に変換して、切り捨て計算をする場合

142.940 = 142.93999999999999772626324556767940521240234375
 
つまり、0.005 = 142.9449 などを加えて 2.d.p に四捨五入すると、142.94 にあんる
 
142.94 - 0.01 = 142.93

これは、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, エンタープライズ, レビュー

  • この記事は役に立ちましたか?