maba / math
PHP library for arbitrary precision mathematics
Installs: 54 717
Dependents: 2
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 4
Open Issues: 1
This package is auto-updated.
Last update: 2024-12-10 20:56:21 UTC
README
PHP library for arbitrary precision mathematics.
Installation
composer require maba/math
Why
var_dump(intval(9223372036854775807 + 1)); // int(-9223372036854775808) var_dump(5.2 * 3 === 15.6); // bool(false) var_dump((8 + 92233720368547750) * 1500 / 1500 - 92233720368547750); // float(16)
Usage
use Maba\Component\Math\BcMath; use Maba\Component\Math\Math; use Maba\Component\Math\NumberFormatter; $basicMathImplementation = new BcMath(); $math = new Math($basicMathImplementation); var_dump($math->add('9223372036854775807', '1')); // string(40) "9223372036854775808.00000000000000000000" var_dump($math->isEqual($math->mul('5.2', '3'), '15.6')); // bool(true) var_dump($math->sub($math->div($math->mul($math->add('8', '92233720368547750'), '1500'), '1500'), '92233720368547750')); // string(22) "8.00000000000000000000" $result = $math->pow($math->mul('3.141592653589793', '2.71828182845904523536'), 13); $formatter = new NumberFormatter($math); echo $formatter->formatNumber($result, 4, '.', ' '); // prints 1 284 625 710 591.2256
BcMath
class uses bcmath
functions. If you need to use some other arbitrary precision math implementation,
implement BasicMathInterface
.
Running tests
composer install vendor/bin/phpunit