Example #1
0
 /**
  * Protected constructor. Use a factory method to obtain an instance.
  *
  * @param BigInteger $numerator        The numerator.
  * @param BigInteger $denominator      The denominator.
  * @param bool       $checkDemominator Whether to check the denominator for negative and zero.
  *
  * @throws DivisionByZeroException If the denominator is zero.
  */
 protected function __construct(BigInteger $numerator, BigInteger $denominator, $checkDemominator)
 {
     if ($checkDemominator) {
         if ($denominator->isZero()) {
             throw DivisionByZeroException::denominatorMustNotBeZero();
         }
         if ($denominator->isNegative()) {
             $numerator = $numerator->negated();
             $denominator = $denominator->negated();
         }
     }
     $this->numerator = $numerator;
     $this->denominator = $denominator;
 }