15

データベースに格納する必要があるサーバーからの値がいくつかあります。私は MySQL の専門家ではありませんが、基本的な入出力については十分に理解しています。現在、次の小数を格納するときに使用する必要がある長さを決定しようとしています。

tax_rate [DECIMAL ?,?]: value(0.014840000000)
units [DECIMAL ?,?]: value(1.00)
initial_charge [DECIMAL ?,?]: value(2.5110)
charge [DECIMAL ?,?]: value(2.8967)
link_tax [DECIMAL ?,?]: value(0.385652)
exempt [DECIMAL ?,?]: value(0.0000)
tax [DECIMAL ?,?]: value(0.042986)
base_price [DECIMAL ?,?]: value(41.8500)

誰かがこれらの値に使用する必要がある正しいサイズを提案し、値を選択した理由を説明してくれることを願っています。または、MySQL の 10 進数について詳しく説明している記事へのリンクかもしれません。

どんな助けでも大歓迎です。

ありがとうございました!

-------編集--------

MySQL のドキュメントを読んだ後、decimal 型のサイズを決定するための非常に適切な説明があります。これらは、私のユース ケースに設定したサイズです。

tax_rate [DECIMAL 15,12]: value(0.014840000000) ? max(999.999999999999)
units [DECIMAL 6,2]: value(1.00) ? max(9999.99)
initial_charge [DECIMAL 9,4]: value(2.5110) ? max(99999.9999)
charge [DECIMAL 9,4]: value(2.8967) ? max(99999.9999)
link_tax [DECIMAL 9,6]: value(0.385652) ? max(999.999999)
exempt [DECIMAL 9,4]: value(0.0000) ? max(9999.9999)
tax [DECIMAL 10,6]: value(0.042986) ? max(999999.999999)
base_price [DECIMAL 10,4]: value(41.8500) ? max(999999.9999)
4

2 に答える 2

48

MySQLから:

DECIMAL 列の宣言構文は DECIMAL(M,D) です。MySQL 5.1 の引数の値の範囲は次のとおりです。

M は最大桁数 (精度) です。範囲は 1 から 65 です (MySQL の古いバージョンでは 1 から 254 の範囲が許可されていました)。

D は、小数点 (スケール) の右側の桁数です。範囲は 0 ~ 30 で、M 以下でなければなりません。

この数値を考慮してください: 123456789.12345 ここでM14、この原則に基づいてDおり5、予想される最大値に基づいて各列に DECIMALS(M,D) を設定できます。

于 2013-10-05T18:39:00.140 に答える