我想在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'