Is there a BigInteger class in PHP? If so, how do I access it or use it?
BigInteger. This version of BigInteger is just a wrapper class for long and its purpose is to only to support a JDK 1.0. 2 version of BigDecimal.
Remarks. The int data type is the primary integer data type in SQL Server. The bigint data type is intended for use when integer values might exceed the range that is supported by the int data type. bigint fits between smallmoney and int in the data type precedence chart.
You can not use the operators on BigInteger . They are not primitives like int , they are classes. Java has no operator overloading.
Hopefully helpfull links :
EDIT: Math_BigInteger
Example from http://phpseclib.sourceforge.net/documentation/math.html :
Implements an arbitrary precision integer arithmetic library. Uses gmp or bcmath, if available, and an internal implementation, otherwise.
<?php
include('Math/BigInteger.php');
$a = new Math_BigInteger(2);
$b = new Math_BigInteger(3);
$c = $a->add($b);
echo $c->toString(); // outputs 5
?>
Even though this question is old, it comes up as first result when Googling for BigInteger PHP
, so for anyone interested, I open-sourced a library called Brick\Math offering BigInteger
, BigDecimal
and BigRational
classes.
use Brick\Math\BigInteger;
use Brick\Math\RoundingMode;
Addition:
echo BigInteger::of('9999999999999999999999999')->plus(1);
// 10000000000000000000000000
Subtraction:
echo BigInteger::of('10000000000000000000000000')->minus(1);
// 9999999999999999999999999
Multiplication:
echo BigInteger::of('3333333333333333333333333')->multipliedBy(11);
// 36666666666666666666666663
Division:
echo BigInteger::of('1000000000000000000000')->dividedBy(3, RoundingMode::UP);
// 333333333333333333334
Exponentiation:
echo BigInteger::of(11)->power(50);
// 11739085287969531650666649599035831993898213898723001
You can easily chain method calls:
echo BigInteger::of(3)->multipliedBy(7)->minus(1)->dividedBy(10);
Just install with Composer and you're done:
composer require brick/math
The library automatically uses the GMP and BCMath extensions when available, to speed up calculations, but will also work without them thanks to a pure PHP implementation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With