我想在Ruby中将美分正确转换为美元。我将永远不必使用零分钱。

是否可以正确执行此操作(没有浮点错误)而不必使用BigDecimal

例如,美分对美元

"99" => "0.99"
"324" => "3.24"

以下似乎有效,但这是正确的吗?
(cents.to_i/100.0).to_s

最佳答案

Micheal Kohl already answered:看看金钱 gem 。

例子:

require 'money'
Money.use_i18n = false  #https://stackoverflow.com/q/31133229/676874
puts Money.new( 99, 'USD')
puts Money.new(324, 'USD')



乍一看,还可以,但是:
cents = '10'
p (cents.to_i/100.0).to_s # -> '0.1'

您没有2位数字。

选择:
p '%.2f' % (cents.to_i/100.0) # -> '0.10'

10-07 17:57