有理数不像Ruby中的代数中的分数

ste*_*ble 0 ruby math rational-number

有人可以向我解释一下吗?

x = Rational(3/4) * 8
 => (0/1) # I Expected it to return 6
x.to_i
 => 0 
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jör*_*tag 5

您正在创建一个Rational数以3/4作为唯一的参数.3/4是的0,所以,你的代码相当于

Rational(0) * 8
Run Code Online (Sandbox Code Playgroud)

这显然是0.

比较这个

Rational(3, 4) * 8
# => (6/1)
Run Code Online (Sandbox Code Playgroud)

你明确传递分子和分母的地方.