spryker/decimal-object

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值对象