在MS-Access中将6个小数位四舍五入为4

时间:2017-11-13 10:48:38

标签: vb.net ms-access decimal rounding

我有一个文本框,允许用户输入最多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。

此外,数据库已经处于实时环境中,因此如果需要更改数据库,则需要以编程方式完成,而不是进入数据库。

这些是我能够在数据库中设置它的字段类型。

enter image description here

1 个答案:

答案 0 :(得分:2)

该字段的数据类型似乎是 Currency ,因为它是JET数据库V3.5(由Access 97使用)的唯一数据类型,它将舍入到四位小数。 / p>

仔细检查表格的字段类型。