[pgsql-jp: 27712] Re: float4を使った計算について

ttakashi @ rmail.plala.or.jp ttakashi @ rmail.plala.or.jp
2002年 10月 22日 (火) 12:38:15 JST


はじめまして
谷本です。

> 小竹と申します。よろしくお願いします。
> 
> ロス率を含めた合計数を求めたいと思っていますが、フィールドにfloat4
を
> 使った計算結果が期待した値にならないのはなぜかを教えていただけます
で
> しょうか。
> f1が数量、f2がロス率としています。

http://www.postgresql.jp/document/pg721doc/user/datatype.html#DAT
ATYPE-NUMERIC-DECIMAL
--以下引用
不正確というのは、ある値はそのままで内部形式に変換されずに
近似値として保存されます。ですから、保存しようとする値と保
存された値を戻して表示した場合に多少の差異が認められます。
--ここまで引用

とありますから、格納されている近似値を元に計算されるからでは
ないのでしょうか?
# こちらの環境(RedHatLinux7.2)でも
# 同様の値が取得されることを確認しました

代替案のひとつとしてnumericを使用するとかいてありますね。
こちらにあるLinuxで確認したところ、
f1     f2     f3           total
1.2    5      0.0600000000 1.2600000000
0.7    0      0.0000000000 0.7000000000
1.5    0      0.0000000000 1.5000000000
1.2    1.1    0.0132000000 1.2132000000
正しい値が取得できているように見えます。

---
Takashi Tanimoto<ttakashi @ rmail.plala.or.jp>




pgsql-jp メーリングリストの案内