【发布时间】:2017-11-14 00:09:43
【问题描述】:
我有一个文本框,允许用户输入最多 6 位小数。这是可行的,但是,在保存时(下面的代码),该值被四舍五入到小数点后 4 位,这就是它的保存方式。
sqlupdate = "UPDATE [Products] SET [Product_Description] = @desc , " & _
"[Unit_Type] = @ut , " & _
"[RegularPrice] = @pr, " & _
"[Product_Category_ID] = @catid, " & _
"[CostPrice] = @costpc, " & _
"[defVol] = @defvol, [size] = @size " & _
"WHERE [Base_Code] = @basecode"
cmd = New OleDbCommand(sqlupdate, con, trans)
Dim decSize As Decimal = Convert.ToDecimal(txt_size.Text)
cmd.Parameters.AddWithValue("@catid", categoryID)
cmd.Parameters.AddWithValue("@costpc", costPc)
cmd.Parameters.AddWithValue("@defvol", volume)
cmd.Parameters.Add("@size", OleDbType.Decimal).Value = decSize
cmd.Parameters.AddWithValue("@basecode", txtCode.Text)
我什至尝试将数据库字段设置为小数点后 6 位,但没有成功。我正在使用 Access 1997。
此外,数据库已经在实时环境中,因此如果需要更改数据库,则需要以编程方式完成,而不是进入数据库。
这些是我可以在数据库中设置的字段类型。
【问题讨论】:
-
您正在使用 20 多年前的 Access '97?为什么?另外,请检查 Access 中的字段大小,四舍五入取决于小数的最大大小。
-
@ErikvonAsmuth 最初不是我的项目,最初的开发人员使用 Access '97 构建它
-
另外,Access '97 中没有字段大小设置,至少货币数据类型没有
标签: vb.net ms-access decimal rounding