Litipk\BigNumbers\Decimal::innerTruncate PHP Method

innerTruncate() private method

private innerTruncate ( $scale, $ceil = true )
    private function innerTruncate($scale = 0, $ceil = true)
    {
        $rounded = bcadd($this->value, '0', $scale);
        $rlen = strlen($rounded);
        $tlen = strlen($this->value);
        $mustTruncate = false;
        for ($i = $tlen - 1; $i >= $rlen; $i--) {
            if ((int) $this->value[$i] > 0) {
                $mustTruncate = true;
                break;
            }
        }
        if ($mustTruncate) {
            $rounded = $ceil ? bcadd($rounded, bcpow('10', -$scale, $scale), $scale) : bcsub($rounded, bcpow('10', -$scale, $scale), $scale);
        }
        return self::fromString($rounded, $scale);
    }