public function sub(Decimal $b, $scale = null) { self::paramsValidation($b, $scale); if ($b->isInfinite()) { return $b->additiveInverse(); } return self::fromString(bcsub($this->value, $b->value, max($this->scale, $b->scale)), $scale); }
private function floorModulo(Decimal $x, Decimal $y) : Decimal { return $x->sub($y->mul($x->div($y)->floor())); }