不同ruby版本的不同指数行为

不同ruby版本的不同指数行为,ruby,math,exponent,ruby-1.8.7,Ruby,Math,Exponent,Ruby 1.8.7,我试图用ruby计算2^1000,但对于不同的版本,我得到了不同的结果。知道为什么吗 使用1.8.7: ~ » rbenv global system ~ ~ » ruby --version ~

我试图用ruby计算
2^1000
,但对于不同的版本,我得到了不同的结果。知道为什么吗

使用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
使用ruby 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

我可以随意使用这种语法并让它工作,但我只是好奇为什么它会导致1.8.7中的0。

我可以合理地确定您正在经历


看起来好像是这样,这使得Ruby 1.9.3-p0甚至更高。

在我的机器上,使用
Ruby 1.8.7(2012-10-12 patchlevel 371)[i686-darwin12.2.0]
时,该值是正确的。我无法重现你奇怪的1.8.7行为。在rvm下运行,使用1.8.7-p358,我得到了与1.9.3-p125相同的结果。这可能是1.8.7版本中的一个错误,同样的事情也发生在使用ruby系统的Mac上。可能跟这个有关