2010-07-07 68 views
3

在MySQL中使用十進制數時,(5,3)的值如何使最大數爲99.999?如果不是我如何指定的?我的號碼是貨幣,所以我需要使用十進制,但它不應該超過99,它必須有3位小數。MySQL十進制說明

回答

5

decimal (5,3)是用於定義範圍爲-99.999 .. 99.999的字段的標準SQL方式。

請注意,對於MySQL,如果您嘗試插入超出範圍的值,MySQL將自動截斷值到最近的邊界值(在本例中爲99.999或-99.999)而不會引發錯誤。

新增

在這種情況下,有一個最大的存儲數據的5數字將是,與正好3數字小數點的右側。如果您插入一個類似1.23的號碼,它將被存儲爲1.230;同樣1將被存儲爲1.000。如果你插入12.3456它將被舍入到12.346;如果您插入12.0001,它將舍入到12.000

當列返回到您的程序時,確切的表示形式將取決於數據庫API如何映射十進制數據類型。如果它映射到一個整數,則會丟失小數;如果它映射到浮點數(float,double),則可能會失去精度;如果它映射到Decimal(C#/ Java),那麼只要您的值在數據類型的範圍內,您就會得到確切的表示形式。

+0

謝謝,但要明確一件事,小數點後面是否有小數點後三位,還是隻有一個或兩個?同樣,數字是否是5位數字,或者是5是最大值? – ubiquibacon 2010-07-07 19:59:18

1

您指定的方法應該起作用。我沒有看到任何問題。

+1

感謝您的保證@Patrick,但我一直在尋找更多的解釋。 – ubiquibacon 2010-07-07 19:59:42