/** * @param float|int $input * @param Currency $from * @param Currency $to * @return float|int */ public static function convertCurrencies($input = 0, Currency $from, Currency $to) { if (0 === $input) { return $input; } if ($from->id !== $to->id) { $main = static::getMainCurrency(); if ($main->id === $from->id && $main->id !== $to->id) { $input = $input / $to->convert_rate * $to->convert_nominal; } elseif ($main->id !== $from->id && $main->id === $to->id) { $input = $input / $from->convert_nominal * $from->convert_rate; } else { $input = $input / $from->convert_nominal * $from->convert_rate; $input = $input / $to->convert_rate * $to->convert_nominal; } } return $to->formatWithoutFormatString($input); }