簡體   English   中英

十進制值在 vb.net 中四舍五入

[英]Decimal value rounded up in vb.net

每次我使用十進制值執行更新 function 時,它都會捕獲四舍五入的 integer 值。 任何人都知道要使用的數據類型是什么? 我嘗試了金錢和浮動我仍然得到四舍五入的價值。

這是 my.vb 代碼

cmd.CommandText=“UPDATE [dbo].[transaction] SET Price=@Price WHERE ID=@ID”
cmd.Parameters.Add(“@Price”,SqlDbType,Decimal,18,2).Values=Textbox1.text
cmd.Parameters.Add(“@ID”,SqlDbType,Int).Values=Textbox2.text

SQL Server Datatype
ID(PK,Int,not null)
Price(decimal(18,2),null)

Input: 25.75
Result: 25
Desired Result: 25.75

您需要設置Option Strict On - 它會指出沒有.Add的重載需要 (String, SqlDbType, Integer, Integer)。

你可以使用類似的東西:

Dim dv = Decimal.Parse(Textbox1.Text)
cmd.Parameters.Add(New SqlParameter With {
                   .ParameterName = "@Price",
                   .SqlDbType = SqlDbType.Decimal,
                   .Precision = 18,
                   .Scale = 2,
                   .Value = dv})

(您還應該將 Option Strict On 設置為新 VB 項目的默認值。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM