В ruby-doc он говорит, что <Fixnum> ** <Numeric>
может быть дробным, и приводит примеры:
2 ** -1 #=> 0.5
2 ** 0.5 #=> 1.4142135623731
, но на моем IRB иногда он дает Rational
ответ как с показателем степени -1
ниже:
2 ** -1 #=> (1/2)
2 ** 0.5 #=> 1.4142135623731
Похоже, что ruby-doc не точен, и ruby пытается набрать приведение к Rational
, когда это возможно, но я не совсем уверен.Каково точное правило приведения типов здесь, когда база и экспонента равны Fixnum
?Меня особенно интересует Ruby 1.9.3, но отличается ли результат в разных версиях?