protected function newPrice($amount, $currency = null)
    {
        if (strpos($amount, '.') != FALSE) {
            // The number is decimal, strip trailing zeroes.
            // If no digits remain after the decimal point, strip it as well.
            $amount = rtrim($amount, '0');
            $amount = rtrim($amount, '.');
        }
        $currency = $currency ?: $this->currency;

        return new static($amount, $currency);
    }