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