为什么不JRuby的红宝石时承认确实大数?
-
22-08-2019 - |
题
如果I型这个大整数:
puts 9997836544.class.to_s
和红宝石1.86编译,它预期地报告:
BigNum
而JRuby的(在Netbeans的1.1.4)令人惊讶地报告:
Fixnum
我想爪哇有一个BigInteger类为对应于Ruby中BIGNUM类。如果是这样,我本来期望JRuby和红宝石以产生相同的输出。
解决方案
找到此 JRuby的错误报告:
似乎JRuby和MRI具有不同的限制,以分离和长整数Bignum的。结果 ...点击 因此,MRI采用0x3fffffff的32位环境下的最大Fixnum对象。结果 和JRuby的总是强>使用64位值:
jruby -e 'p (0x7fffffffffffffff + 1).class'
---> Bignum的
因此,尝试一个更大的数字,当你想到你应该得到一个BIGNUM。
不隶属于 StackOverflow