2014-03-06 51 views
2

我代表金錢,可以有2位小數,所以我使用的列:小數精度在mysql數據庫

'price' DECIMAL(2) 

但之後讀出位我所看到的東西,如:

'price' DECIMAL(6,2) 

2的區別是什麼?

我想要的是任何數字的數字,但將小數限制爲2,是第一個正確的?

+2

https://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-changes.html –

回答

3

DECIMAL Documentation

在標準SQL,語法DECIMAL(M)等價於DECIMAL(M,0)。同樣,DECIMAL語法等價於DECIMAL(M,0),其中實現允許決定M的值.MySQL同時支持DECIMAL語法的這些變體形式。 M的默認值是10

'price' DECIMAL(6,2) 

在這個例子中,6是精度和2是規模。精度表示爲值存儲的有效數字的數量,標度表示可以存儲在小數點後面的數字的數量。

'price' DECIMAL(2) 

如果刻度爲0,DECIMAL值不包含小數點或小數部分。

換句話說:該字段可以有6位數,其中2必須在小數點後面。

+1

換句話說:這個字段可以有'6'位其中'2'位將在小數點後面('0000.00' - '9999.99')。 – h2ooooooo

+0

@ h2ooooooo先生更新了你的句子 –

1

作爲每mysql documentation

用於DECIMAL列中的聲明語法是DECIMAL(M,d)。 MySQL 5.1中參數的值範圍如下:

M是最大位數(精度)。它的範圍爲1 至65.(舊版本的MySQL允許範圍爲1至254.)

D是小數點右邊的數字位數( 比例)。它有30個的範圍爲0,並且必須是不大於M.