/** * @param $name * @param $args * @return String */ protected function bcCalc($name, $args) { $value = current($args); if ($value instanceof number\Percentage) { switch ($name) { case 'bcmul': case 'bcdiv': $value->bcdiv(100); break; default: $value->of($this); break; } } elseif (!$value instanceof Number) { if (is_numeric($value)) { $value = new Number($value); } else { trigger_error('BC Functions must be compared with another Number or a valid number'); } } if ($name == 'bcdiv' && $value->getValue() == 0) { $result = 0; } else { $result = $name($this->getValue(), $value->getValue(), $this->getPrecision()); } return $result; }
public function testPreserve() { $num = new Number(123); $new_num = $num->preserve()->bcsub(23); $this->assertEquals(123, $num->getValue()); $this->assertEquals(100, $new_num->getValue()); }
public function getRealValue() { return parent::getValue(); }