Rails не работает с точностью number_to_currency — это ошибка?

Я пытаюсь использовать number_to_currency для получения двух цифр после десятичной точки в Rails 3, но могу получить только одну. Мое поле БД определяется следующим образом:

t.decimal  "amount",              :precision => 5, :scale => 2

В моем шаблоне у меня есть:

#{number_to_currency(@purch.amount)}

И все же в результате я получаю: 34,7 злотых
В БД я ясно вижу: 34,70
Я хотел бы видеть свой второй ноль - это фича или я что-то пропустил?

Спасибо!


person iRonin    schedule 19.07.2011    source источник


Ответы (2)


Поскольку вы, похоже, используете пользовательскую локаль, попробуйте принудительно настроить поведение, которое вы хотите, явно установив параметры number_to_currency:

number_to_currency(@purch.amount, :precision => 2)

Вы также можете установить эти параметры в файле локали для вашего языка. Взгляните на http://guides.rubyonrails.org/i18n.html.

person Thilo    schedule 19.07.2011
comment
Я попробовал :precision и тоже не получил сока, однако спасибо, что указали мне на параметры локали, я обнаружил, что для :strip_insignificant_zeros установлено значение true, что является ответом на мою проблему. Благодарю вас! - person iRonin; 21.07.2011

Ответ заключается в проверке следующих параметров в файле конфигурации локали:

  currency:
      format:
        strip_insignificant_zeros: false
person iRonin    schedule 21.07.2011