プロジェクトでは、列price MONEY NOT NULL
列を含むテーブルを作成しました。そして、浮動小数点数(つまり、IEEEの丸めの問題)とは異なり、小数を適切に処理すると思っていましたが、$9.94
(数値)ではなく、データベースから返される9.94
(文字列) )。ドル記号を削除してフィールド値を手動で操作しなければならないのはばかげています。通貨記号なしでMONEY
列を作成する方法はありますか?
そうでない場合、通貨の値を処理するのに最適なデータ型の置き換えは何ですか?
これはどうですか?
金額の値は、精度を失うことなく数値にキャストできます。他の型への変換は精度を失う可能性があり、2つの段階で行う必要があります。
SELECT '52093.89'::money::numeric::float8;
ソース: http://www.postgresql.org/docs/9.1/static/datatype-money.html