2013-02-12 3 views
3

Я пытаюсь вычислить 2^1000 в рубине, но у меня разные результаты для разных версий. Любая идея почему?Поведение разных экспонентов для разных версий ruby ​​

Использование 1.8.7:

~ » rbenv global system                   ~ 
~ » ruby --version                    ~ 
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0] 
~ » irb                       ~ 
>> 2 ** 1000 
0 
>> exit 

Использование рубин 1.9.3

~ » rbenv global 1.9.3-p194                  ~ 
~ » ruby --version                    ~ 
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.1.0] 
~ » irb                       ~ 
>> 2 ** 1000 
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376 
>> exit 

можно обойти с помощью этого синтаксиса и это работает, но я просто любопытно, почему это приводит 0 в 1.8.7.

+0

С 'ruby 1.8.7 (2012-10-12 patchlevel 371) [i686-darwin12.2.0]' на моей машине, значение верное. –

+0

Я не могу воспроизвести ваше странное поведение 1.8.7. Запуск под rvm и использование 1.8.7-p358, я получаю те же результаты, что и 1.9.3-p125. –

+6

Это может быть ошибка в версии 1.8.7, то же самое происходит на моем Mac с помощью рубиновой системы. Возможно, это связано с этим http://stackoverflow.com/questions/12009799/exponentiation-in-ruby-1-8-7-returns-wrong-answers –

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^