You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP库brick/money便捷比较金额?

关于brick/money库的金额比较问题

我选择使用PHP库brick/money进行货币计算,因为浮点数精度不足,且将金额转换为美分以仅用整数计算的操作繁琐,该库能更便捷处理舍入问题。我未选用money PHP库,因其灵活性差,要求输入为类整数形式,且我不愿编写输入输出包装器及调试美分相关内容。

我发现brick/money存在文档不完善的小缺陷,搜索直接比较两个金额的方法却未找到官方直观的实现方式。

代码示例

use Brick\Money\Money;

$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...

这是功能缺失还是我有所遗漏?感谢解答。


内容的提问来源于stack exchange,提问作者El Gucs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:12:51