存储价格 - 如何停止舍入?

时间:2017-02-28 09:03:32

标签: sql-server vb.net

我试图存储一个价格,但它存储它与便士总是向上或向下舍入。如何停止它以便存储小数点后的实际值?非常感谢。

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

1 个答案:

答案 0 :(得分:1)

指定精度和比例,例如 decimal(18,2),它可以处理成本而不会四舍五入。

**Decimal (p,s)**

精确数值,精度p,比例s。

示例:decimal(5,2)是一个小数点前3位数和小数点后2位数的数字