2009-06-29 44 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值不是十进制值