scheldejonas / moontoast-math
一个数学库,提供大数功能
Requires
- php: >=5.3.3
- ext-bcmath: *
Replaces
This package is auto-updated.
Last update: 2024-09-12 20:00:46 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位整数的字符串表示。如果您愿意,您现在可以使用它创建一个BigNumber对象来进行计算。
$bn = new \Moontoast\Math\BigNumber($uuid); echo $bn; // 339532337419071774305803111643925486182
许可证
版权 © 2013 Moontoast,Inc。
根据Apache许可证第2版(“许可证”)授权;除非您遵守许可证规定,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。