Ивелина обнови решението на 12.10.2015 12:30 (преди около 9 години)
+def convert_to_bgn(amount, currency)
+ currency_value = get_currency_value(currency)
+ result = currency_value*amount
+ result.round(2)
+end
+
+def get_currency_value(currency)
+ case currency
+ when :usd
+ 1.7408
+ when :eur
+ 1.9557
+ when :gbp
+ 2.6415
+ when :bgn
+ 1
+ end
+end
+
+def compare_prices(amount_one, currency_one, amount_two, currency_two)
+ value_one = convert_to_bgn(amount_one, currency_one)
+ value_two = convert_to_bgn(amount_two, currency_two)
+ if value_one > value_two
+ 1
+ elsif value_one < value_two
+ -1
+ else
+ 0
+ end
+end
Може и по-добре :)
- в
compare_prices
си си написала<=>
-
value
иget_currency_value
и тн. не са добри имена - по-лесно щеше да стане с hash за обменните курсове
Допълнително, трябва да има интервали около операторите (напр. *
).
Методът ти можеше да стане така (например):
def convert_to_bgn(
(conversion_rate_for(currency) * amount).round(2)
end