4

私は postgresql データベースを持っており、それを金銭的価値を処理するプロジェクトに使用しています。私の質問は次のとおりです。postgresql テーブルの倍精度または float8 型の列の 10 進数の桁数を 2 に制限するにはどうすればよいですか?

4

1 に答える 1

16

マニュアルに記載されているように、代わりにDecimal( ) 型を使用するだけです。Numericcost decimal(10,2)

最初の数値 (10) は数値の全長(小数点以下を含むすべての桁) を定義し、2 番目の数値 (2) は小数点以下の桁数を示します。上記の宣言により、ポイントの前に 8 桁が表示されます。もちろん、それを増やすこともできます -Numericタイプの制限ははるかに高くなります。

私の意見では、通貨やその他の通貨関連の値を処理するときに浮動小数点を使用する必要はありません。2 つのタイプのパフォーマンスの比較についてはわかりませんが、Decimal利点が 1 つあります。正確な数値です (通常、浮動小数点の場合はそうではありません)。また、トピックに関する興味深い、しかし短い議論を読むことをお勧めします。

于 2012-06-20T05:35:42.887 に答える