我试图存储一个价格,但它存储它与便士总是向上或向下舍入。如何停止它以便存储小数点后的实际值?非常感谢。
VB代码
Public Sub UpdateItemBuyPrice(ByVal fileID As Integer, ByVal BuyPrice As Decimal)
Dim DBConnect As New DBConn
Using db As DbConnection = DBConnect.Conn("DBConnectionString")
Dim cmd As SqlCommand = DBConnect.Command(db, "UpdateItemBuyPrice")
cmd.Parameters.Add(New SqlParameter("fileID", SqlDbType.Int, ParameterDirection.Input)).Value = fileID
cmd.Parameters.Add(New SqlParameter("BuyPrice", SqlDbType.Decimal, ParameterDirection.Input)).Value = BuyPrice
db.Open()
cmd.ExecuteNonQuery()
cmd.Dispose()
cmd = Nothing
db.Dispose()
db.Close()
End Using
End Sub
MS SQL
PROCEDURE [ocbUser].[UpdateItemBuyPrice]
@fileID integer,
@BuyPrice decimal
AS
BEGIN
UPDATE [tblItems]
SET [BuyPrice] = @BuyPrice
WHERE [fileID] = @fileID
END
答案 0 :(得分:1)
指定精度和比例,例如 decimal(18,2),它可以处理成本而不会四舍五入。
**Decimal (p,s)**
精确数值,精度p,比例s。
示例:decimal(5,2)是一个小数点前3位数和小数点后2位数的数字