当我在php中添加数字时出现奇怪的问题

时间:2018-09-07 07:23:02

标签: php

当我用php求和时,我遇到了一个奇怪的问题。

我有以下代码(使用laravel集合):

$stockQuantity = 0;
    if ($ledgerEntries->count()) {
        $ledgerEntries->each(function ($item) use (&$stockQuantity) {
            $stockQuantity += $item->Quantity;
            info($item->Quantity);
            info($stockQuantity);
        });
    }

因此LedgerEntries是对象的集合。每个对象都有一个数量。 我的目标是使对象中所有“数量”值的总和。

所以我循环了这些项目,在每个循环中传递总计,然后将数量添加到总计中,并且为了进行装卸,我记录了数量和总计。

以下是日志(我仅添加了最后8个条目):

   [2018-09-07 09:10:17] local.INFO: 510
[2018-09-07 09:10:17] local.INFO: -1683
[2018-09-07 09:10:17] local.INFO: 561
[2018-09-07 09:10:17] local.INFO: -1122
[2018-09-07 09:10:17] local.INFO: 561
[2018-09-07 09:10:17] local.INFO: -561
[2018-09-07 09:10:17] local.INFO: 561
[2018-09-07 09:10:17] local.INFO: -9.0949470177293E-13

因此,在倒数第二个循环中,我的$ stockQuantity为-561。在上一个循环中,我将561加上0,而不是0,结果是-9.0949470177293E-13。

我无法解决这个问题。有没有人可以对此有所了解?

Ps:通过测试,我还尝试了以下方法:

info(-561 + 561);

这将返回:

[2018-09-07 09:21:19] local.INFO: 0

我想念什么?

0 个答案:

没有答案