mi-la01/kt_moontoast-math

一个数学库,提供大数功能

1.2.0 2015-07-27 10:47 UTC

This package is not auto-updated.

Last update: 2024-09-18 10:18:21 UTC


README

Build Status

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

除非适用法律要求或书面同意,否则根据许可证分发的软件是按“原样”分发的,不提供任何明示或暗示的保证或条件。有关许可证的具体语言和权限限制,请参阅许可证。