moontoast / math
1.2.1
2020-01-05 04:49 UTC
Requires
- php: >=5.3.3
- phpseclib/bcmath_compat: >=1.0.3
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^0.9.0
- phpunit/phpunit: ^4.8 || ^5.5 || ^6.5 || ^7.0
- satooshi/php-coveralls: ^0.6.1
- squizlabs/php_codesniffer: ^2.3
README
请注意: 此包已被放弃。请过渡到 brick/math。
Moontoast Math 库
Moontoast\Math 可以用于处理大于(或通过数学计算可能变得大于)PHP给定系统最大整数值的整数。在64位系统上,这个数字是 9223372036854775807。在32位系统上,它是 2147483647。当溢出此边界时,PHP将数字转换为浮点数,减少精度(参见整数的 PHP 手册条目)。
Moontoast\Math 提供了对 bcmath 扩展的简单包装,允许对数字字符串执行数学计算,超出系统整数值范围,并保持任意精度以进行更精确的计算。
安装
首选的安装方法是使用 Composer
composer 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-2020 Moontoast,Inc。
根据 Apache License,版本 2.0(“许可”)许可;除非根据适用法律或书面同意,否则不得使用此文件,除非符合许可。您可以在以下位置获得许可副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”基础分发,不提供任何形式的质量保证或条件,无论是明示的还是暗示的。有关许可的具体语言和限制,请参阅许可。