有人可以向我解释一下吗?
x = Rational(3/4) * 8
=> (0/1) # I Expected it to return 6
x.to_i
=> 0
感谢。
答案 0 :(得分:5)
您正在创建Rational
个号码,其中3/4
为唯一参数。 3/4
为0
,因此,您的代码等同于
Rational(0) * 8
显然是0
。
将此与
进行比较Rational(3, 4) * 8
# => (6/1)
你明确地传递分子和分母。
答案 1 :(得分:1)
如果您希望在分数中使用斜杠,则可以使用字符串作为参数:
x = Rational('3/4') * 8
或
x = ('3/4'.to_r) * 8