BCMath函数的包装器

v0.2.0 2023-12-03 00:05 UTC

This package is auto-updated.

Last update: 2024-09-03 01:40:53 UTC


README

Qed(发音为“ked”)提供了BCMath操作的链式方法,允许你编写更流畅、更易读的计算代码。

Qed还包括对bcroundbcceilbcfloor的polyfill函数,这些函数将在未来的PHP版本中提供官方实现

(请注意,Qed的polyfill函数不一定在数学上是正确的。请不要将它们用于任何一点重要的用途。)

示例

一组基本操作

$num = new Qed('123');
$num = $num->add('27')->mul('4');

echo $num->value; // 600

设置比例

BCMath操作有一个“比例因子”的概念。这可能会变得非常重要——如果不设置合适的比例值,某些数字可能会意外地被截断。

比例可能与精度略有不同。有关更多信息,请参阅PHP网站上的bcscale()文档

$num = new Qed('123', 5);
$divisor = new Qed('456');
$num = $num->div($divisor)->mul('10');

echo $num->value; // 2.69730

请注意,比例遵循流的左侧。如果将Qed对象作为除数(或任何其他操作数)传递,则该对象的规模将被忽略。

舍入

虽然PHP中还没有提供bcround(),但Qed提供了一个polyfill函数和一个辅助方法。这个polyfill函数非常原始,并且不可靠。

但是,如果你愿意冒险,以下是使用方法:

$num = new Qed('123', 10);
$divisor = new Qed('456');
$num = $num->div($divisor)->mul('10')->round(2);

echo $num->value; // 2.70

请注意,精度值与正常的“比例”值不同,因为比例因子不能是负值(但精度可以)。返回的Qed对象将具有与原始实例相同的比例值,精度值仅应用于bcround的内部。

还有一个参数,$roundHalf,可以是PHP_ROUND_HALF_*常量之一。有关更多信息,请参阅php.net/round