Una biblioteca Bignum para PHP.
| Tipo | Suma | Sustracción | División | Multiplicación | Raíz cuadrada | Fuerza |
|---|---|---|---|---|---|---|
| Bigint | hecho | hecho | hecho | hecho | hecho | hecho |
| Bigfloat | hecho | hecho | hecho | hecho | hecho | hecho |
¡Simplemente clone el proyecto, vaya al directorio del proyecto y ejecute composer install y debería estar listo para comenzar! Ah, y también para ejecutar pruebas, debe hacer vendor/phpunit/phpunit/phpunit tests/ .
El paquete es instalable a través composer require hpez/php-bignum o repositorio de Packagist
<?php
// BigInteger Addition
$ bigInt1 = new BigInt( ' 123456 ' )
$ bigInt2 = new BigInt ( ' 654321 ' );
$ bigInt1 -> add ( $ bigInt2 );
echo $ bigInt1 ; // "777777"
// BigFloat Addition
$ bigFloat1 = new BigFloat ( ' 123456.111 ' );
$ bigFloat2 = new BigFloat ( ' 654321.22 ' );
$ bigFloat1 -> add ( $ bigFloat2 )
echo $ bigFloat1 ; // "777777.331"
// BigInteger Subtraction
$ bigInt3 = new BigInt ( ' 777777 ' );
$ bigInt4 = new BigInt ( ' 654321 ' );
$ bigInt3 -> sub ( $ bigInt4 );
echo $ bigInt3 ; // "123456"
// BigFloat Subtraction
$ bigFloat3 = new BigFloat ( ' 123456.111 ' );
$ bigFloat4 = new BigFloat ( ' 654321.22 ' );
$ bigFloat3 -> sub ( $ bigFloat4 );
echo $ bigFloat3 ; // results "530865.109"
// BigInteger Division
$ bigInt5 = new BigInt ( ' 777777 ' );
$ bigInt6 = new BigInt ( ' 654321 ' );
$ bigInt5 -> div ( $ bigInt6 );
echo $ bigInt5 ; // "1"
// BigFloat Division
$ bigFloat5 = new BigFloat ( ' 123456.111 ' );
$ bigFloat6 = new BigFloat ( ' 654321.22 ' );
$ bigFloat5 -> div ( $ bigFloat6 );
echo $ bigFloat5 ; // "0.188678"
// BigInteger Multiplication
$ bigInt7 = new BigInt ( ' 777777 ' );
$ bigInt8 = new BigInt ( ' 654321 ' );
$ bigInt7 -> multiply ( $ bigInt8 );
echo $ bigInt7 ; // "508915824417"
// BigFloat Multiplication
$ bigFloat7 = new BigFloat ( ' 123456.111 ' );
$ bigFloat8 = new BigFloat ( ' 654321.22 ' );
$ bigFloat7 -> multiply ( $ bigFloat8 );
echo $ bigFloat7 ; // "80779953165.97542"
// BigInteger Modulo
$ bigInt9 = new BigInt ( ' 777777 ' );
$ bigInt10 = new BigInt ( ' 654321 ' );
$ bigInt9 -> mod ( $ bigInt10 );
echo $ bigInt9 ; // "123456"
// BigInteger Power
$ bigInt11 = new BigInt ( ' 777777 ' );
$ bigInt12 = new BigInt ( ' 1 ' );
$ bigInt11 -> pow ( $ bigInt12 );
echo $ bigInt11 ; // "777777"
// BigFloat Power
$ bigFloat9 = new BigFloat ( ' 12345.12345 ' );
$ bigInt13 = new BigInt ( ' 3 ' );
$ bigFloat9 -> pow ( $ bigInt13 );
echo $ bigFloat9 // "1881422405168.320420453463625"
// BigInteger Square Root
$ bigInt14 = new BigInt ( ' 10000 ' );
$ bigInt15 -> sqrt ();
echo $ bigInt14 ; // "100"
// BigFloat Square Root
$ bigFloat10 = new BigFloat ( ' 2 ' );
$ bigFloat11 -> sqrt ( 7 );
echo $ bigFloat10 ; // "1.4142136"
// BigInteger Lesser-Than
$ bigInt16 = new BigInt ( ' 1234567890 ' );
$ bigInt17 = new BigInt ( ' 1234567891 ' );
echo $ bigInt16 -> isLesserThan ( $ bigInt17 ); // True
$ bigInt18 = new BigInt ( ' 1234567891 ' );
$ bigInt19 = new BigInt ( ' 1234567891 ' );
echo $ bigInt18 -> isLesserThan ( $ bigInt19 ); // False
// BigInteger Bigger-Than
$ bigInt20 = new BigInt ( ' 1234567891 ' );
$ bigInt21 = new BigInt ( ' 1234567890 ' );
echo $ bigInt20 -> isBiggerThan ( $ bigInt21 ); // True
$ bigInt22 = new BigInt ( ' 1234567891 ' );
$ bigInt23 = new BigInt ( ' 1234567891 ' );
echo $ bigInt22 -> isBiggerThan ( $ bigInt23 ); // False El objetivo de este proyecto es hacer una biblioteca Bignum completa para el lenguaje PHP, por lo que las operaciones distintas de las mencionadas en la tabla también deben agregarse (Funciones trigonométricas, ...).
¡Cualquier contribución en forma de un problema o una solicitud de extracción es más que bienvenida! Además, si tiene alguna pregunta, no dude en crear un nuevo problema o comentar sobre las existentes.