看着SO,我發現使用RoR的貨幣的首選方式是使用decimal(8,2)並使用number_to_currency()輸出它們;Ruby on Rails - 貨幣:導致問題的逗號
我能得到我的號碼了DB的,但我對讓他們在遇到問題
在我的更新動作我有以下行:
if @non_labor_expense.update_attributes(params[:non_labor_expense])
puts YAML::dump(params)
則params的轉儲顯示正確的值。 xx,yyy.zz,但是存儲在數據庫中的只有xx.00
我需要做些什麼才能考慮到可能存在逗號並且用戶可能無法輸入.zz(美分)。一些正則表達式和逗號?如果它是.2和.20,你將如何處理小數。
必須有一個內建或至少一個更好的方法。
我的移民(我不知道這是否有助於):
class ChangeExpenseToDec < ActiveRecord::Migration
def self.up
change_column :non_labor_expenses, :amount, :decimal, :precision => 8, :scale => 2
end
def self.down
change_column :non_labor_expenses, :amount, :integer
end
end
1.2和0.20是相同的numbe r,所以不管你如何存儲它,只要你如何顯示它。 – 2010-01-25 19:19:04
沒錯。第一個問題是,我忘記了逗號後的數據。你說過一次,我解決了這個問題,.2和.20會解決它在數據庫中的存儲方式嗎? – easement 2010-01-25 19:24:32
查看我的回答;基本上,您將該數字作爲直接(未格式化)的十進制數存儲在數據庫中,然後在需要顯示時按照需要進行格式化。 – 2010-01-25 19:28:54