如何比较数额与PHP库砖/钱



我决定使用PHP库brick/money进行货币计算,因为使用浮点数太不精确,而且将数量转换为美分很烦人,所以只使用整数,并且为了更容易处理四舍五入。我没有使用money PHP库,因为它不灵活,并且要求输入是整数形式的(是的,我懒得制作输入/输出包装器,不想以美分进行调试)。

我注意到使用brick/money的一个小缺点,因为没有好的文档。我寻找一种直接的方法来比较两个金额,这是一个我找不到正式/直接/直接的形式来做的问题。

所以我有这样的东西:

use BrickMoneyMoney;
$money1 = Money::of(50, 'MXN'); // MXN 50.00
$money1 = $money1->plus('10'); // MXN 60.00 -- whatever operation
$money2 = Money::of(50, 'MXN'); // MXN 50.00
$money2 = $money1->minus('10'); // MXN 40.00 -- whatever operation

问题:如何比较中的两个金额?每次比较都需要调用->getMinorAmount()->toInt()吗?我是否需要做一些类似下面的基本验证?:

if ($money1->getMinorAmount()->toInt() < 0 || 
$money1->getMinorAmount()->toInt() < $money2->getMinorAmount()->toInt()) {
$error = true;
}

同时在money PHP你有这样的功能:

$result = $value1->equals($value2); 
$result = $value1->greaterThan($value2);
$result = $value1->greaterThanOrEqual($value2);
//etc...

这是一个缺失的功能还是我错过了什么?提前谢谢。

AbstractMoney类中也有类似的方法

$result = $money1->isEqualTo($money2); 
$result = $money1->isGreaterThan($money2);
$result = $money1->isGreaterThanOrEqualTo($money2);
...

相关内容

  • 没有找到相关文章

最新更新