如果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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top