如果我决定将 Ruby 中的 Rationals 用于控制台应用程序,但不希望它们显示为分数,是否有一种惯用的方式来指定它们应该以十进制表示法显示?
我知道的选项包括:
fraction = Rational(1, 2)
puts "Use to_f: #{fraction.to_f}"
puts(sprintf("Use sprintf %f", fraction))
class Rational
def to_s
to_f.to_s
end
end
puts "Monkey patch Rational#to_s: #{fraction}"
有没有其他选择?