Георги обнови решението на 08.10.2015 16:55 (преди около 9 години)
+# G.K 81110 07/10/2015
+
+CURRENCY_RATE = {:usd => 1.7408, :eur => 1.9557, :gbp => 2.6415}
+
+def convert_to_bgn(value, currency = :bgn)
+ rate = CURRENCY_RATE.has_key?(currency) ? CURRENCY_RATE[currency] : 1
+ (value * rate).round(2)
+end
+
+def compare_prices(price_1, currency_1, price_2, currency_2)
+ convert_to_bgn(price_1, currency_1) - convert_to_bgn(price_2, currency_2)
+end
Здравей :)
Решението ти е добро. Харесва ми, че си изнесъл CURRENCY_RATE
в константа.
Ето малко коментари:
- Махни коментара на първия ред. Знаем кой си, нали предаваш задачата от профила си в сайта. :)
- Защо ти е тази проверка в
convert_to_bgn
? Не може ли просто да сложишbgn
вCURRENCY_RATE
? Така логиката ще е по-ясна и ще е една и съща без значение от валутата. - Не ти е нужна подразбиращата се стойност за втория аргумент - ние няма да тестваме без да го подадем.
- Има по-кратък начин да създадеш хеш със символи за ключове:
{usd: 1.7408, ...}
.
Здравей, мерси за коментарите :)
Ако решиш, можеш да предадеш ново решение :) Системата ни го позволява.
Не знаех. Ще променя решението, както ме съветва и пак ще я пратя :)