Rails: число в валюте, удаление конечных нулей - программирование
Подтвердить что ты не робот

Rails: число в валюте, удаление конечных нулей

Как я могу использовать number_to_currency и удалить его в десятичной части?

Итак, если у меня есть номер 30.50, я хочу сохранить .50, но если у меня есть 30.00, я хочу удалить эти нули. Я вижу точность, но я не знаю, могу ли я использовать ее условно только для применения, если конечные десятичные числа - это нули...

Спасибо

4b9b3361

Ответ 1

num = 30.00
number_to_currency(num, :precision => (num.round == num) ? 0 : 2)
  => $30

num = 30.05
number_to_currency(num, :precision => (num.round == num) ? 0 : 2)
  => $30.05

Ответ 2

Я использую денежные строки, поэтому я делаю это по-другому:

def string_to_cents str
    new_str = number_to_currency(str,  :format => "%n")
    if new_str && new_str[-3..-1] == ".00"
        new_str[-3..-1] = ""
    end
    new_str
end