Fixnum # to_r здесь не упоминается, он был введен начиная с ruby 1.9. Он превращает Fixnum в рациональную форму. Ниже приведены примеры его использования. Это также может дать точное деление, если все используемые числа являются Fixnum.
a = 1.to_r #=> (1/1)
a = 10.to_r #=> (10/1)
a = a / 3 #=> (10/3)
a = a * 3 #=> (10/1)
a.to_f #=> 10.0
Пример, в котором число с плавающей запятой, работающее с рациональным числом, покрывает результат с плавающей запятой.
a = 5.to_r #=> (5/1)
a = a * 5.0 #=> 25.0