将BigDecimal转换为美分

时间:2012-10-07 13:40:53

标签: ruby 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 个答案:

答案 0 :(得分:0)

您还可以使用to_i,这会更好地传达您的意图,除非您希望处理小数分数(在这种情况下,to_i似乎截断为零)。