我想将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%确定我在这里所做的是否正确。也许有人知道更好的方法吗?
答案 0 :(得分:0)
您还可以使用to_i
,这会更好地传达您的意图,除非您希望处理小数分数(在这种情况下,to_i
似乎截断为零)。