3


2

MySQL 10進数の明確化

MySQLで10進数を使用する場合、 `(5,3)`の値は最大数が `99.999`になるように設定しますか? そうでない場合、どのように指定しますか? 私の番号は通貨用なので、小数を使用する必要がありますが、99を超えてはならず、小数点以下3桁でなければなりません。

2 Answer


5


decimal(5,3)`は、 `-99.999 ..の範囲でフィールドを定義する標準的なSQLの方法です。 99.999

MySQLの場合、範囲外の値を挿入しようとすると、MySQLはエラーをスローすることなく、値を最も近い境界値(この場合は99.999または-99.999)に自動的に切り捨てます。

追加

この場合、最大で「5」桁のデータが保存され、小数点の右側に「3」桁が正確に格納されます。 「1.23」のような数字を挿入すると、「1.230」として保存されます。同様に、「1」は「1.000」として保存されます。 「12.3456」を挿入すると、「12.346」に切り上げられます。 「12.0001」を挿入すると、「12.000」に切り捨てられます。

列がプログラムに返されるとき、正確な表現は、データベースAPIが10進データ型をマップする方法に依存します。 整数にマップすると、小数が失われます。浮動小数点数(float、double)にマップする場合、精度が失われる可能性があります。 10進数(C#/ Java)にマップする場合、値がデータ型の境界内にある限り、正確な表現が得られます。


1


指定したメソッドが機能するはずです。 問題はありません。