mi-la01 / kt_moontoast-math
一个数学库,提供大数功能
Requires
- php: >=5.3.3
- ext-bcmath: *
Requires (Dev)
- phpunit/phpunit: ~4.1
- satooshi/php-coveralls: ~0.6
This package is not auto-updated.
Last update: 2024-09-18 10:18:21 UTC
README
Moontoast\Math 库对于处理大于(或可能因为数学运算而大于)PHP给定系统最大整数值的整数非常有用。在64位系统上,这个数字是9223372036854775807。在32位系统上,它是2147483647。当超过这个边界时,PHP将数字转换为浮点数,降低精度(有关更多信息,请参阅PHP手册中整数的条目)。
Moontoast\Math 提供了一个易于使用的 bcmath 扩展包装器,允许用户对数值字符串进行数学计算,超出系统的整数范围,并保持任意精度以进行更精确的计算。
请参阅 docs/ 目录以获取生成的API文档。
Moontoast\Math 需要 PHP 5.3+ 和bcmath 扩展。
安装
首选的安装方法是使用Packagist,因为它提供了PSR-0自动加载器功能。以下composer.json将下载并安装Moontoast\Math库的最新版本到您的项目中
{
"require": {
"moontoast/math": "*"
}
}
示例
$bn = new \Moontoast\Math\BigNumber('9,223,372,036,854,775,808'); $bn->multiply(35); var_dump($bn->getValue()); var_dump($bn->convertToBase(16));
这将生成以下输出
string(21) "322818021289917153280"
string(18) "118000000000000000"
您可能想使用 BigNumber 来处理UUID,它是一个无符号128位整数。例如
$uuid = \Moontoast\Math\BigNumber::convertToBase10('ff6f8cb0c57d11e19b210800200c9a66', 16);
此实用程序将UUID从十六进制(基数16)表示转换为无符号128位整数的十进制(基数10)字符串表示。现在您可以使用它创建一个 BigNumber 对象来进行计算,如果需要的话。
$bn = new \Moontoast\Math\BigNumber($uuid); echo $bn; // 339532337419071774305803111643925486182
许可证
版权所有 © 2013 Moontoast, Inc.
根据Apache许可证版本2.0(“许可证”)授权;除非您遵守许可证规定,否则不得使用此文件。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件是按“原样”分发的,不提供任何明示或暗示的保证或条件。有关许可证的具体语言和权限限制,请参阅许可证。