Vb.net 在MS Access中,小数点后6位四舍五入为4位

Vb.net 在MS Access中,小数点后6位四舍五入为4位,vb.net,ms-access,decimal,rounding,Vb.net,Ms Access,Decimal,Rounding,我有一个文本框,允许用户输入最多6位小数。但是,在保存(下面的代码)时,该值会被四舍五入到小数点后4位,这就是它的保存方式 sqlupdate = "UPDATE [Products] SET [Product_Description] = @desc , " & _ "[Unit_Type] = @ut , " & _ "[RegularPrice] = @pr, " & _ "[Product_C

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

此外,数据库已经处于活动环境中,因此如果需要更改数据库,则需要以编程方式进行更改,而不是进入数据库

这些是我可以在数据库中设置的字段类型


该字段的数据类型似乎是通用的,因为它是JET数据库V3.5(Access 97使用的)中唯一一种四舍五入到四位小数的数据类型


因此,请仔细检查表的字段类型。

该字段的数据类型似乎是通用的,因为它是JET数据库V3.5(Access 97使用的)中唯一一种四舍五入到四位小数的数据类型


因此,请仔细检查表的字段类型。

您使用的是Access'97,20多年前的版本?为什么?此外,请检查Access中的字段大小,取整取决于小数点的最大大小。@ErikvonAsmuth最初不是我的项目,最初的开发人员使用Access'97构建它。此外,Access'97中没有字段大小设置,至少货币数据类型没有设置。您使用Access'97是20多年前的事了吗?为什么?另外,请检查Access中的字段大小,取整取决于小数点的最大大小。@ErikvonAsmuth最初不是我的项目,最初的开发人员使用Access'97构建它。此外,Access'97中没有字段大小设置,至少不适用于货币数据类型。在这种情况下,它应该是什么数据类型?数字完全删除所有小数点。在JET 3.5中,您唯一的选择是双精度。Decimal最初是在JET 4.0中引入的。alternativ“option”是一种按比例缩放的货币:保存时乘以100,读取时除以100。那么,在代码中使用双变量并将其插入数据库?否则,Double不是表设计中可以使用的数据类型。使用Double还没有修复它,值仍然四舍五入为4 DP。Double不是表设计中可以使用的数据类型。-我不知道你的意思。它是。您可能还必须调整代码以反映这一点。在这种情况下,它应该是什么数据类型?数字完全删除所有小数点。在JET 3.5中,您唯一的选择是双精度。Decimal最初是在JET 4.0中引入的。alternativ“option”是一种按比例缩放的货币:保存时乘以100,读取时除以100。那么,在代码中使用双变量并将其插入数据库?否则,Double不是表设计中可以使用的数据类型。使用Double还没有修复它,值仍然四舍五入为4 DP。Double不是表设计中可以使用的数据类型。-我不知道你的意思。它是。您可能还必须调整代码以反映这一点。