BigDecimal equivalent for php



我想用php进行货币单位计算。在 java 中,我们为此目的BigDecimal因为浮点数和双精度不能准确地表示我们用于货币的 10 倍数。

那么我应该在 php 中使用什么呢?

PHP 不提供开箱即用的BigDecimal等效物。你会发现最接近的东西是BCMath扩展,但它是相当低级的,不如一个成熟的BigDecimal 类有用。

相反,您可以使用一个名为brick/math的库,该库提供BigDecimal 类,该类非常接近Java:

use BrickMathBigDecimal;
$amount = BigDecimal::of('12.34');
echo $amount->multipliedBy(2); // 24.68

该库在可用时自动使用 BCMath 或 GMP 扩展,以加快计算速度(但也可以在没有它们的情况下工作)。


如果你专门处理钱,我建议你试试砖/钱库。它基于brick/math并处理精确的货币计算:

use BrickMoneyMoney;
use BrickMathRoundingMode;
$amount = Money::of('12.34', 'USD');
echo $amount->dividedBy(2); // USD 6.17
echo $amount->dividedBy(3, RoundingMode::DOWN); // USD 4.11

免责声明:我是这些库的作者。

相关内容

  • 没有找到相关文章

最新更新