2011-09-15 49 views
0

我已經寫了一些代碼,從各種哈希,數組,哈希陣列中提取和發票。在發票中,我將小計所售物品,添加省銷售稅(加拿大和GST 。拿出總計有所有我有一個小的塊來處理的格式:紅寶石舍入問題

def currency amount 
sprintf("$%.2f",amount) 
end 

當然這使量爲float以美元符號我有問題與我的發票之一增加了一分錢以上,我理解整個浮點精度的事情,這不是我的問題,我的老師說我需要修改貨幣區塊,我已經試着將我的值乘以100 ,然後在使用curr後除以100 ency:

puts "GST (#{tax(GST*100)}%) :#{currency(gst_total/100)}" 

但這當然是格式化所有與浮動數字再次,同樣的問題在那裏。我怎樣才能修改這個?

回答

1

您可能需要在合計它們之前將您的物品或稅值舍入。例如,RoundCents(1.004 * 3)是3.01,但RoundCents(1.004)* 3是3.00。

或者,您可能是銀行家四捨五入的受害者。