spryker/decimal

PHP 十进制处理作为值对象

1.0.2 2021-07-30 15:32 UTC

This package is auto-updated.

Last update: 2024-09-19 20:56:34 UTC


README

Build Status codecov Latest Stable Version Minimum PHP Version PHPStan License

PHP 的十进制值对象。

背景

当处理货币值时,如 int 或 float 这样的常规数据类型不适用于精确算术。在 PHP 中尝试以下操作

var_dump(0.1 + 0.2);        // float(0.3)
var_dump(0.1 + 0.2 - 0.3);  // float(5.5511151231258E-17)

将它们作为字符串处理是一种权宜之计,但作为值对象可以更轻松地封装一些逻辑。

替代方案

https://php-decimal.io 这样的解决方案需要 PHP 扩展(会使它更快,但也会使某些服务器更难以获得)。有关详细信息,请参阅 wiki

功能

  • 在精度/比例上非常严格。它不会自行丢失有效数字。您需要手动使用 trim() 来实现这一点。
  • 会话式 API(没有 le、gt 方法)。
  • 支持基本数学运算和检查。
  • 不可变。
  • 处理非常大和非常小的数字。

安装

需求

  • bcmath PHP 扩展已启用

Composer(首选)

composer require spryker/decimal-object

用法

有关更多详细信息,请参阅 文档

实现

以下库使用 Decimal 值对象