2014-06-17 33 views
1

对于Microsoft Access 2010,我有两个单场:圆角与Access

A = 1.1 B = 2.1

我创造,我已经定义了C = A * B

微软查询访问说,C = 2.30999994277954 但是,在现实中,C = 2.31

我怎样才能得到正确的结果(2.31)?

回答

2

如果您的数值字段大小为单倍或双倍而非小数,则可能会发生小数值操作的结果稍微偏离。单数和双数(或浮点)数字非常接近“真”数字,但如果需要操作精度则不应依赖。相关的计算器问题有更多关于此问题的信息:Access comparing floating-point numbers "incorrectly"

如果可以修改底层表的设计,您应该将字段大小属性的“A”和“B”字段从单个更改为小数。在更改字段大小之前,在保存表格之前,您还需要将“A”和“B”的Scale属性从0调整为可能需要的小数点右侧的任意数量的位置。您可能仍会收到关于丢失数据的通知,但如果您在保存表之前正确调整字段属性,这应该不成问题。在执行此操作之前,您应该先制作一份副本,以便验证是否没有数据丢失。保存表格并验证更改没有导致数据丢失后,您的查询应准确表示A * B。