Brick/Money
- 高精度货币处理库
moneyA money and currency library for PHP项目地址:https://gitcode.com/gh_mirrors/mone/money
在处理金融数据时,准确无误是至关重要的,因为小数点后的细微错误可能在现实生活中带来严重的后果。这就是为什么浮点数运算不适合用于货币计算。`Brick/Money` 是一个基于 [brick/math](https://github.com/brick/math) 库的 PHP 货币和货币单位处理工具,它确保了精确的计算。
简介
Brick/Money
提供了一种安全可靠的方式来存储、操作和转换各种货币值,避免了浮点数运算的潜在问题。安装这个库非常简单,只需通过 Composer 即可:
composer require brick/money
技术剖析
该库要求 PHP 8.1 或更高版本。安装了 GMP 或 BCMath 扩展可以显著提升计算性能,但不是必需的。所有操作都是不可变(immutable)的,这意味着每次操作都会返回一个新的实例,保证了数据的安全性。
创建货币对象使用 of()
或 ofMinor()
方法:
use Brick\Money\Money;
$money = Money::of(50, 'USD'); // USD 50.00
$money = Money::of('19.9', 'USD'); // USD 19.90
$money = Money::ofMinor(1234, 'USD'); // USD 12.34
基本的数学运算如加减乘除也得到了很好的支持,并且在货币之间不兼容时会抛出异常:
$cost = Money::of(25, 'USD');
$shipping = Money::of('4.99', 'USD');
$discount = Money::of('2.50', 'USD');
$total = $cost->plus($shipping)->minus($discount);
对于涉及到四舍五入的情况,你可以指定一个舍入模式,以避免不必要的异常。
应用场景
无论是在电子商务系统中计算订单总价,还是在财务软件中进行复杂的货币转换,Brick/Money
都能提供精确、稳定的服务。此外,它还可以处理多种货币混合的总额(MoneyBag),以及货币之间的转换(CurrencyConverter),为你的应用添加更多的灵活性。
项目特点
- 基于砖块系列的高性能基础数学库
- 支持 PHP 8.1 及以上版本
- 具备兼容多种扩展的高精度计算
- 安全的不可变货币操作
- 内置货币分配与组合功能
- 支持自定义上下文(Context),如现金四舍五入、自定义小数位等
- 自动调整比例的 RationalMoney 类,适用于复杂计算
立即尝试 Brick/Money
,让您的金融计算更精准,更无忧!
moneyA money and currency library for PHP项目地址:https://gitcode.com/gh_mirrors/mone/money