php将我的数字添加到10 ^ -16而不是ZERO(0)

时间:2011-05-21 21:12:08

标签: php mysql

我有一个函数可以添加大量带小数的数字....来自MySQL DB的FLOAT数字。

现在,我有一个问题,有时他们会添加可笑的小数字,如-1.11022302463E-16,而不是零。有什么想法吗?

顺便说一下, 我添加的所有数字都是货币,所以它们都是:XXX.XX ....

由于

2 个答案:

答案 0 :(得分:1)

根据@BoltClock的建议,将数据库中的所有float字段更改为decimal(10,2)字段其中用于货币值。 Float会遇到像你描述的那样的舍入问题。

如果您在数据库中添加 所有内容,则不会出现任何舍入错误。

您可以通过

添加数字
UPDATE table1 SET money1 = money1 + 10.20 WHERE table1.id = 10

用常数代替参数。

答案 1 :(得分:1)

阅读php手册的这一部分,特别是精确警告。

http://www.php.net/manual/en/language.types.float.php

在底部,您将看到可用于高精度数学的函数的链接