abivia/money

货币值操作库,一个支持四舍五入的 BCMath 库。

1.2.0 2023-08-08 13:06 UTC

This package is auto-updated.

Last update: 2024-09-08 15:41:13 UTC


README

Abivia Money 是一个紧凑、流畅的库,实现了正确的四舍五入逻辑,并可选择回退到 BCMath 的截断模式。Money 实例是不可变的。

Money 实现了金融计算必需的 BCMath 函数,以及其他有用的函数 ceilfloormaxminround

Money 对象可以保留单独的缩放值。如果对具有不同缩放值的两个对象执行操作,则结果将保留更高的精度。

四舍五入问题

示例:$35.04 / 1.15 = $30.469565217

当处理货币时,没有分数美分。这应该四舍五入到 30.47。但是

echo bcdiv('35.04', '1.15', 2);

30.46

这是一个四舍五入误差为 .95 美分而不是 0.05 美分。对于几十次计算来说可能不是大问题,但是如果重复一百万次,那就是 900,000 美元的差异。

use Abivia\Money;

Money::setScale(2);
echo Money::make('35.04')->div('1.15');

30.47