使用Microsoft 2010,我有两个单独的字段:
A= 1.1 B= 2.1
我创建了一个查询,其中定义了C=A*B
Microsoft说C= 2.30999994277954,但实际上C =2.31
我怎样才能得到正确的结果(2.31)?
发布于 2014-06-17 16:24:23
如果您的数字字段大小为单或双,而不是十进制,则对十进制值执行的操作可能会产生稍微差一些的结果。单和双(或浮点)数字是非常接近“真”数字,但不应依赖于在操作的准确性是必要的。相关的堆栈溢出问题包含有关此问题的更多信息:Access comparing floating-point numbers "incorrectly"
如果可以修改基础表的设计,则应该将"A“和"B”字段的字段大小属性从单个更改为十进制。在更改字段大小后,但在保存表之前,还需要将"A“和"B”的比例属性从0调整为小数点右侧的任何位置。您可能仍然会收到有关丢失数据的通知,但是如果您在保存表之前正确地调整了字段属性,这应该不是问题。在进行此操作之前,您可能应该复制该表,以便验证是否有数据丢失。在保存表并验证更改没有导致数据丢失后,查询应该准确地表示A*B。
https://stackoverflow.com/questions/24267523
复制相似问题