在Access 2002 VBA中,可以使用哪种数据类型来限制双精度结果的精度?

| 我正在执行计算,得出一个浮点数。当我尝试将其写入访问字段时,出现此错误:
Run-time error \'3759\': Scaling of decimal value resulted in data truncation
我故意将访问字段限制为固定的精度。我希望该值会被自动截断,但会引发此错误-如何在VBA中显式更改该值的精度以避免此错误? 码:
value = X / Y
With myTAble
    .AddNew
    !calc = value
    .Update
End With
    
已邀请:
        您可以尝试使用VBA的Round函数,如下所示:
!calc = Round(value, 2)
用任意多个小数位替换2。 根据数字的大小和精度,如果Round返回的值不能精确地表示为Double浮点数(因此最终的位数比您要求的要多),您可能仍然会遇到3759错误。一种更可靠的方法可能是使用类似以下内容的方法:
!calc = CDec(FormatNumber(value, 2))
用任意多个小数位替换2。 FormatNumber将舍入数字并将其转换为字符串(仅包含您指定的小数位数),而CDec会将字符串转换为Decimal。     
        这个怎么样:
value = X / Y
With myTAble
    .AddNew
    !calc = Fix(value*10^decimalPlaces)/10^decimalPlaces
    .Update
End With
其中“ 5”是您希望使用的小数位数。
Fix
截断数字。如果您想四舍五入,请尝试
Clng
。     

要回复问题请先登录注册