Exemple #1
0
 private function _compare(LargeInteger $obj)
 {
     $pattern = '/^\\+?(\\d+)(\\.\\d+)?$/';
     if (!preg_match($pattern, $this->that->get_value(), $matchFirst) || !preg_match($pattern, $obj->get_value(), $matchSecond)) {
         return 0;
     }
     $intOne = ltrim($matchFirst[1], '0') . str_pad('', 0, '0');
     $intTwo = ltrim($matchSecond[1], '0') . str_pad('', 0, '0');
     if (strlen($intOne) > strlen($intTwo)) {
         return 1;
     } else {
         if (strlen($intOne) < strlen($intTwo)) {
             return -1;
         }
     }
     for ($i = 0; $i < strlen($intOne); $i++) {
         if ((int) $intOne[$i] > (int) $intTwo[$i]) {
             return 1;
         } else {
             if ((int) $intOne[$i] < (int) $intTwo[$i]) {
                 return -1;
             }
         }
     }
     return 0;
 }
Exemple #2
0
 public function testLessOrEqualThan()
 {
     $obj1 = new LargeInteger("12323543598732149872958714082798523523489723897423897423897429874987239847");
     $obj2 = new LargeInteger("12323543598732149872958714082798523523489723897423897423897429874987239847");
     $obj3 = new LargeInteger("12323543598732149872958714082798523523489723897423897423897429874987239847");
     $obj4 = new LargeInteger("12323543598732149872958714082798523523489723897423897423897429874987239847");
     $obj5 = new LargeInteger("12323543598732149872958714082798523523489723897423897423897429874987239847");
     $obj6 = new LargeInteger("2323543598732149872958714082798523523489723897423897423897429874987239847");
     $this->assertTrue($obj1->less_or_equal_than($obj2));
     $this->assertTrue($obj3->less_or_equal_than($obj4));
     $this->assertFalse($obj5->less_or_equal_than($obj6));
 }
Exemple #3
0
<?php

require 'vendor/autoload.php';
use LargeInteger\LargeInteger;
$uint1 = new LargeInteger("123235435987321498729587140827985234");
$uint2 = new LargeInteger("123235435987321498729587140827985234");
$uint3 = $uint1->add($uint2);
//echo bcadd(123235435987321498729587140827985234, 123235435987321498729587140827985234);
//echo '<br />';
//echo $uint3->get_value();
//echo '<br />';
//echo bcadd("123235435987321498729587140827985234", "123235435987321498729587140827985234");
$int1 = new LargeInteger(28);
$int2 = new LargeInteger(457);
var_dump($int1->_compare($int2));
echo '<br/>';
var_dump(bccomp(28, 457));