我有一个函数,可以将许多数字与小数相加……来自MySQL DB的浮点数。
现在,我有一个问题,有时他们会添加到非常小的数字,如-1.11022302463E-16,而不是零。有什么想法吗?
顺便说一下,我添加的所有数字都是货币化的,所以它们都是这样的: XXX.XX ...
谢谢
发布于 2011-05-22 05:29:18
按照@BoltClock的建议,将数据库中的所有float字段更改为decimal(10,2)字段,其中用于货币值。Float遇到了像你所描述的那样的舍入问题。
如果您在数据库中添加,则不会出现任何舍入误差。
可以通过执行以下操作添加数字
UPDATE table1 SET money1 = money1 + 10.20 WHERE table1.id = 10将常量替换为参数。
发布于 2011-05-22 05:30:21
https://stackoverflow.com/questions/6084472
复制相似问题