我有一个带有产品表的MS Access 2010数据库。 price列是单个数据类型,格式设置为Fixed(2)。有些值没有正确表示,我也不知道为什么。例如,表中显示的一个价格为1.52。但是,如果我导出到Excel,或者使用货币格式在表单中查看它,我看到Access确实存储了1.51999998092651
。无论我做什么,我似乎无法更改值以正确表示0.20
。
我知道计算机将实数存储为近似值,但这似乎相当荒谬。任何想法在这里发生了什么以及如何解决它?
答案 0 :(得分:1)
将'Single'数据类型替换为'Currency',或者至少将'Double'替换为'Double'。
共同的浮点数没有准确的二进制表示。当然'双'类型会有更少的错误。所以你需要使用固定点数,在ms访问中命名为'Currency'。但他们之前的前进位数有限,前后有4位数。
P.S。您必须更改类型,而不是格式。