thehappycat / numerictools
PHP项目,用于执行基本数值运算
dev-master
2019-07-01 00:43 UTC
Requires
- php: ^7.0
Requires (Dev)
- phpunit/phpunit: ^6.4
This package is auto-updated.
Last update: 2024-09-29 05:08:56 UTC
README
NumericToolsPHP

创建一个简单的项目来处理PHP中的大数值运算!
就像您通常进行的普通数值运算一样,但支持任何大小的数字。
<?php $integerNumber = Integer::createByInt(1); $smallNumber = Integer::createByString('1'); $largeNumber = Integer::createByString('987654321234567898765432123456789'); // A really large number that as primitive type might throw a number in scientific notation or infinity. $reallyLargeNumber = Integer::createByString('12345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321234567898765432123456789876543212345678987654321');
当前支持的运算
加法
<?php $a = Integer::createByString('1234567898765432123456789876543212345678987654321'); $b = Integer::createByString('987654321234567898765432123456789'); // $c = 1234567898765433111111111111111111111111111111110 $c = $a->add($b);
减法
<?php $a = Integer::createByString('1234567898765432123456789876543212345678987654321'); $b = Integer::createByString('987654321234567898765432123456789'); // $c = 1234567898765431135802468641975313580246864197532 $c = $a->subtract($b); $a = Integer::createByString('987654321234567898765432123456789'); $b = Integer::createByString('1234567898765432123456789876543212345678987654321'); // $c = -1234567898765431135802468641975313580246864197532 $c = $a->subtract($b);
乘法
<?php $a = Integer::createByString('999999999999'); $b = Integer::createByString('789'); // $c = 788999999999211 $c = $a->multiplyBy($b); $a = Integer::createByString('1234567898765432123456789876543212345678987654321'); $b = Integer::createByString('987654321234567898765432123456789'); // $c = 1219326320073159600060966114921506736777910409998442005792202408166072245112635269 $c = $a->multiplyBy($b);
除法
<?php $dividend = Integer::createByString('987654321234567898765432123456789'); $divisor = Integer::createByString('12345678987654321'); // $quotient = 80000000180000000 $quotient = $dividend->divideBy($divisor);
取模
<?php $dividend = Integer::createByString("1234567890123456789"); $divisor = Integer::createByString("9876543210"); // $module = 8626543209 $module = $dividend->mod($divisor);
大于
<?php $a = Integer::createByString("123456789012345678901234567890"); $b = Integer::createByString("987654321"); // true $comparison = $a->greaterThan($b); $a = Integer::createByString("987654321"); $b = Integer::createByString("123456789012345678901234567890"); // false $comparison = $a->greaterThan($b);
大于等于
<?php $a = Integer::createByString("1500"); $b = Integer::createByString("1492"); // true $comparison = $a->greaterOrEqualTo($b); $a = Integer::createByString("1234567890"); $b = Integer::createByString("1234567890"); // true $comparison = $a->greaterOrEqualTo($b); $a = Integer::createByString("1234"); $b = Integer::createByString("1234567890"); // false $comparison = $a->greaterOrEqualTo($b);