十进制类型的SQL列将数字0,01舍入为0

时间:2011-08-29 20:01:42

标签: sql-server tsql

在Visual Studio 2010中编辑字段时,我将值更改为0,01

enter image description here

当通过循环到行的末尾来进行更改时,它会变为0。

enter image description here

为什么会这样?我需要它来保存0,01作为值。 RegularCost字段也会出现同样的问题。我需要保存299,45这样的东西,然后它就会结束。

这是SQL:

create table Auction
(
AuctionId int primary key identity(1,1),
ProductId int foreign key references Product(ProductId),
AuctionCategoryId int foreign key references AuctionCategory(AuctionCategoryId),
SerialNumber nvarchar(1024),
StartTime datetime,
EndTime datetime,
AvailableForBuyNow bit,
BuyNowCost decimal,
LanceCost decimal,
ClosingLanceCount int,
WonByUser int,
RegularCost decimal
)

2 个答案:

答案 0 :(得分:5)

您需要将其定义为

decimal(12,2)

指定精度(12)和刻度(2)。如果你想要4位小数,你可以做十进制(12,4)。

小数点右边的默认值为0。

http://msdn.microsoft.com/en-us/library/ms187746.aspx

答案 1 :(得分:1)

尝试像这样指定precision and scale

LanceCost decimal(10,2)

或使用money类型:

LanceCost money