public function multiply($factor, $roundingMode = PHP_ROUND_HALF_UP)
    {
        if (!in_array($roundingMode, self::$roundingModes)) {
            throw new InvalidArgumentException(
                '$roundingMode ' . \Yii::t('skeeks/money', 'must be a valid rounding mode') . ' (PHP_ROUND_*)'
            );
        }

        return $this->newMoney(
            $this->castToFloat(
                round($factor * $this->amount, 0, $roundingMode)
            )
        );
    }