ffmg / myoddweb.bignumber.php
无外部依赖的大数
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ^5.0
This package is not auto-updated.
Last update: 2024-09-18 17:53:04 UTC
README
A php bignumber class that does not have any external dependency. Based on the myoddweb.bignumber.cpp project
状态
用法
在你的项目中
Composer
您可以使用 Composer 安装此库。
{
"require": {
"ffmg/myoddweb.bignumber.php": "0.1.*"
}
}
然后只需在您的脚本中包含 "require_once "vendor/autoload.php""(或您使用的任何 composer 路径)。
您还可以直接浏览 包。
直接下载
只需将文件 "path/to/code/BigNumber.php" 包含到您的项目中。
其他文件只是测试和此项目。
// in your script
include "path/to/code/BigNumber.php"
// use it
$lhs = new \MyOddWeb\BigNumber( 10 );
$lhs = new \MyOddWeb\BigNumber( 10 );
$sum = $lhs->Add( $rhs ); // = 20
// good times...
示例
// without composer
include "path/to/code/BigNumber.php"
// with composer
include "MyOddweb\BigNumber\BigNumber.php"
简单用法
查看各种测试以获取更多示例代码。
使用字符串的大数
// using strings
$x = new \MyOddWeb\BigNumber("18446744073709551615");
$y = new \MyOddWeb\BigNumber("348446744073709551615");
$sum = $x->Add( $y )->ToString();
整数
// using int
$x = new \MyOddWeb\BigNumber(17);
$y = new \MyOddWeb\BigNumber(26);
$sum = $x->Add( $y )->ToInt();
双精度浮点数
// using doubles
$x = new \MyOddWeb\BigNumber(17.0);
$y = new \MyOddWeb\BigNumber(26.0);
$sum = $x->Add( $y )->ToDouble();
转换为其他基数
// output number to base 2.
$x = new \MyOddWeb\BigNumber(5);
$base2 = $x->ToBase( 2 ); // =101 (base 2)
// fraction/real numbers
// output number to base 8 with decimals.
$x = new \MyOddWeb\BigNumber(10.8);
$base2 = x->ToBase( 8, 2 ); // =12.63 (base 8)
您可以从基数 2 转换到基数 62
一行操作
整数
$x = new \MyOddWeb\BigNumber("17")->Add(\MyOddWeb\BigNumber("26"))->ToInt();
双倍
$x = new \MyOddWeb\BigNumber(1.234)->Add(\MyOddWeb\BigNumber(2.345))->ToDouble();
创建单个项目
$x = (new \MyOddWeb\BigNumber( 123 ) )->Log( 20 )->Sub(12)
或者您也可以不使用 'new' 参数做相同的事情。
$x = \MyOddWeb\BigNumber( 123 )->Log( 20 )->Sub(12)
函数
数学函数
- Add( number ) : 将 'number' 添加到 'this' 数。
- Sub( number ) : 从 'this' 数减去 'number'。
- Mul( number ) : 将 'number' 乘以 'this' 数。
- Div( number ) : 用 'this' 除以 'number' 数。
- Add( number ) : 将 'number' 添加到 'this' 数。
- Factorial() : 此数的阶乘,(!n)
- Mod( number ) : 'this' 数的模,(n % m)。除法的余数。
- Quotient( number ) : 除 'this' 数以 'number' 的商。
- Pow( number ) : 'this' 的 'number' 次幂(n * n * n * ...)。
- 负数。
- Exp() : e 的 'this' 次幂
- Ln() : 'this' 的 e 底对数。
- Root( number ) : 'this' 数的第 n 次根。
- Sqrt() : 'this' 数的平方根。
其他函数
-
IsNeg() : 如果 'this' 数是负数或不是。
-
IsZero() : 如果 'this' 数是零或不是。
-
IsNan() : 如果 'this' 数不是数字或不是,(NAN)。例如,这是除以零或负阶乘的结果。
-
IsOdd() : 如果 'this' 数是奇数。
-
IsEven() : 如果 'this' 数是偶数。
-
Compare( number ) : -ve = 较小 / +ve = 较大 / 0 = 相同。
- IsEqual( number ) : 如果 'this' 等于 'number'。
- IsUnequal( number ) : 如果 'this' 不等于 'number'。
- IsGreater( number ) : 如果 'this' 大于 'number'。
- IsLess( number ) : 如果 'this' 小于 'number'。
- IsGreaterEqual( number ) : 如果 'this' 大于或等于 'number'。
- IsLessEqual( number ) : 如果 'this' 小于或等于 'number'。
-
IsInteger() : 如果 'this' 数是正数或负数的整数。
-
ToInt() : 转换为 int。
-
ToDouble() : 转换为 double。
-
ToString() : 将数字输出为字符串,(如果想要限制小数位数,请使用 ToBase( ... ) 函数)。
-
ToBase( base = 10[, precision=100] ) : 转换为字符串。
- 您可以将一个基数传递给转换,默认是基数 10。允许的基数是 2-62。值是 0-9 然后是 A-Z 然后是 a-z
- 您可以使用精度来限制字符串输出中返回的小数位数。
-
Abs():获取数字的绝对值
-
Trunc(precision):截断数字,去除小数部分。(+/-n.xyz = n)
-
Ceil(precision):向上取整(2.1 = 3 / -2.1 = -2)
-
Floor(precision):向下取整(2.1 = 2 / -2.1 = -3)
-
ToDegree( ... ):将指定精度的 此 从弧度转换为度。
-
ToRadiant( ... ):将指定精度的 此 从度转换为弧度。
常量
- e():[欧拉数](https://en.wikipedia.org/wiki/E_%28mathematical_constant%29)(精确到150位小数)。
- pi():[圆周率](https://en.wikipedia.org/wiki/Pi)(精确到150位小数)。
待办
查看myoddweb.bignumber.cpp项目,函数在此处添加后会在cpp项目中添加。