自动舍入SQL Server问题

时间:2014-01-21 16:18:21

标签: sql-server sql-server-2008-r2

我认为这是一个非常愚蠢的问题,但这让我慢慢地痛苦地扼杀了我,我已经做了一些研究,为什么会发生这种情况并让我一无所知。

我在SQL Server 2008 R2中有一个简单的表,包括:

id int; 
name varchar 50; 
price decimal(18,0)

问题是每次我希望插入或更新,并且值是十进制,例如12.5,在我插入之后,数据库会自动将此向上舍入为13.如果我输入12,5它将转向如果我将这个数字存储为小数,为什么会发生这种情况呢?我知道这可能是一个愚蠢的答案,但在我缺乏数据库经验和我花时间锁定答案的时候,我相信我需要一些帮助。 Thx in advanced

1 个答案:

答案 0 :(得分:3)

如果你定义你的decimal总共是18位数,小数点后 - 你期望什么?

你需要在小数点后给你的小数点一些数字!

使用类似

的内容
decimal(18,2) 

或任何你需要的东西

详细了解decimal数据类型以及如何在MSDN SQL Server Books Online上使用