Я делаю PDF для счетов в моей системе, и я хотел бы иметь возможность хранить числа с двумя десятичными разрядами в базе данных. Я использую MoneyRails
gem для работы с валютами, у меня есть настройки precision: 10
и scale: 2
на уровне базы данных (я использую postgres
в качестве базы данных), но я получаю только 1 знак после запятой. Почему?
class AddPrecisionToInvoices < ActiveRecord::Migration[5.2]
def self.up
change_column :invoices, :total_net_amount_cents, :decimal, precision: 10, scale: 2, default: 0.00
change_column :invoices, :total_gross_amount_cents, :decimal, precision: 10, scale: 2, default: 0.00
end
def self.down
change_column :invoices, :total_net_amount_cents, :bigint
change_column :invoices, :total_gross_amount_cents, :bigint
end
end
invoice.rb
monetize :total_net_amount_cents
monetize :total_gross_amount_cents
В консоли рельсов,
invoice.total_gross_amount_cents = Money.new(20_000_00)
invoice.total_gross_amount.to_f #=> 2000.0
Можно ли хранить в БД числа с двумя десятичными разрядами, например 20,000.00
?
Я не хочу отображать PDF-файл в виде, поэтому хочу иметь возможность перетаскивать число в мою БД, поскольку я получил его из параметров из моего интерфейсного приложения без дальнейшего форматирования в виде.