Example #1
0
 /**
  * Calculate a mathematical expression that uses pokemath-numbers
  *
  * @param $expression
  *
  * @return Number
  */
 public function calculate($expression)
 {
     $translatedExpression = $this->translate($expression);
     $result = eval('return ' . $translatedExpression . ';');
     $decimalResult = new Number($result);
     // this is bad and needs some work
     return $decimalResult->convert($this->numberSystem);
 }
 /**
  * Parse the part of an expression.
  *
  * @param $part
  *
  * @return Number
  */
 protected function parseExpressionPart($part, NumberSystem $sourceSystem, NumberSystem $targetSystem)
 {
     try {
         // if it is a valid number of the source-system convert it
         $sourceNumber = new Number($part, $sourceSystem);
         return $sourceNumber->convert($targetSystem)->value();
     } catch (NumberParseException $e) {
         return $part;
     }
 }
Example #3
0
<?php

use gries\NumberSystem\HexadecimalSystem;
use gries\NumberSystem\Number;
require_once __DIR__ . '/../vendor/autoload.php';
$number = new Number(15);
// the default system is decimal
$hexNumber = new Number('FF', new HexadecimalSystem());
echo $number->add($hexNumber)->value();
// 270 (15 + 255)
echo $hexNumber->add($number)->value();
// 10E (F + FF)
Example #4
0
 /**
  * Get all digits of a given number according to
  * this number-system.
  *
  * @param Number $number
  *
  * @return array
  */
 public function getDigits(Number $number)
 {
     if (null === $this->delimiter) {
         return str_split($number->value());
     }
     return explode($this->delimiter, $number->value());
 }
Example #5
0
 public function __construct($value)
 {
     parent::__construct($value, new YoloSystem());
 }
Example #6
0
 public function __construct($value)
 {
     parent::__construct($value, new PokeNumberSystem());
 }