Hi My Fellow Access用户。 我通过链接两个Excel工作表使用Access进行协调。数字是两位小数。 Linked Table view
然而,当我试图在两个小数两个小数之间运行减法时,它会返回如下结果: enter image description here
感谢是否有人知道如何发生这种情况,以及我需要采取哪些措施来解决这个问题?
由于 田
答案 0 :(得分:1)
对于链接的Excel工作表,列类型可能是Double,64位浮点数。您遇到的这个问题可能是由于浮点数的固有限制,并不是Excel或Access所独有的。
这个Stack Overflow问题基本上是同一个问题:Why does this subtraction not equal zero?
Excel也不例外,只是默认格式可能不会显示必要的精度来揭示行为。选择科学格式或增加显示的小数位数将显示相同的行为。
请考虑以下事项:
CCur()
函数将值转换为货币。货币是固定小数值,但请注意,它只有小数点右边的4位数。 (更新以反映古斯塔夫的建议)CDec()
函数将值转换为定点十进制类型。没有本机VBA Decimal类型,因此这些是包含Decimal值的变体。但转换回浮点后,仍有可能体验到额外的数字。答案 1 :(得分:1)
不要直接使用链接的Excel数据。
创建简单的选择查询,您可以在其中转换和修剪数据。像:
Select SomeField, Description, CCur([TotalAmount]) As Total
From YourLinkedExcelTable
处理金额时,请始终使用货币作为数据类型。
现在,使用查询计算 Diff 。