2012-10-07 66 views
0

我想一個BigDecimal在Ruby中轉換成美分,這裏是我做過什麼:轉換的BigDecimal分錢

amount = BigDecimal('19.95') 
#=> #<BigDecimal:7f80bc726b38,'0.1995E2',18(18)> 
amount_in_cents = amount*100 
#=> #<BigDecimal:7f80bc794cc8,'0.1995E4',9(45)> 
amount_in_cents.to_f 
#=> 1995.0 
amount_in_cents.ceil 
#=> 1995 

所以ceil給我適量地仙,我需要溝通的支付金額供應商。目前,我不是100%肯定,如果我在這裏做是正確的。也許有人知道更好的方法?

+1

'ceil'向正無窮移動時,'floor'向負無窮,'round'朝向或根據小數部分遠離零,和'to_i'簡單地截斷。每個這些四種方法適用於'1.6','1.4','-1.6'和'-1.4',你會看到其中的差別。 –

回答

0

您也可以使用to_i,它可以更好地傳達您的意圖,除非您希望處理分數美分(在這種情況下,to_i似乎截斷爲零)。

+0

感謝,爲int的聲音更好 – Daniel