Округление в рельсах number_field - PullRequest
0 голосов
/ 04 января 2019

У меня есть число_поле, таким образом:

<%= ff.number_field :total_cost_savings, {class: 'form-control number', :step => 0.01} %>

Я ввожу значение 1.1, сохраняю и обновляю, и оно отображает значение "1.100000023841858". Я понимаю, что это потому, что базовое поле базы данных является плавающим, и что я мог бы изменить поле базы данных на десятичное, но нет ли способа вместо этого контролировать форматирование поля number_field вместо отображения?

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Ответ:

<%= ff.number_field :total_cost_savings, {value: number_with_precision(ff.object.total_cost_savings, precision: 2), class: 'form-control number', :step => 0.01} %>
0 голосов
/ 04 января 2019

По ценам вы можете сделать так:

    f.number_field :total_cost_savings, value: number_to_currency(f.object.total_cost_savings, delimiter: '', unit: ''), step: 0.01

Кроме того, вы можете перезаписать активный получатель записей, добавив его в файл модели:

    def total_cost_savings
      read_attribute(:total_cost_savings).round(2)
    end      
...