public function floor($scale = 0) { if ($scale >= $this->scale) { return $this; } if ($this->isNegative()) { return $this->innerTruncate($scale, false); } return self::fromString(bcadd($this->value, '0', $scale)); }