2009-06-29 45 views
1

我有一個表有兩個十進制(18,0)字段。SQL Server插入十進制,但選擇Int

我在這張表中插入兩個十進制值。例如,1.11

當我從表中(不帶管型)選擇,我得到1

我失去了所有的Percision,我不知道爲什麼。

插入到測試值(153, '測試', '測試',1,1,1.11,1.11)

選擇從TEST *和它們是1和1,而不是1.11,1.11

有任何想法嗎?

+0

哇我覺得自己就像是一個dufus。 謝謝 – bladefist 2009-06-29 20:59:40

回答

7

當您將一個字段聲明爲十進制(18,0)時,表示您希望小數點後的精度爲0位數。您將要將這些列定義爲十進制(18,2)(或者您希望的精度的很多數字)以保持1.11的值。

請參閱MSDN page on decimal and numeric types瞭解可怕的細節。

0

嘗試改用小數型(9,2)

0

也許嘗試創建列作爲

十進制(18,2)

1

定義精度爲十進制否則每次都僅存儲INT值不是十進制值