Pregunta

Si escribo esto entero grande:

puts 9997836544.class.to_s

y compilar con el rubí 1,86, se informa como era de esperar:

BigNum

mientras JRuby (1.1.4 en Netbeans) informa sorprendentemente:

Fixnum

pensé que tenía una clase de Java BigInteger para corresponder a la clase bignum en Ruby. Si es así, lo que habría esperado JRuby y el rubí para producir la misma salida.

¿Fue útil?

Solución

Encontrados este JRuby informe de error :

  

Parece que JRuby y la RM tienen diferentes límites para separar las Fixnum y Bignum.
  ...
  Por lo tanto, la resonancia magnética utiliza 0x3FFFFFFF como el mayor Fixnum en un entorno de 32 bits.
  Y JRuby siempre utiliza el valor de 64 bits:. jruby -e 'p (0x7fffffffffffffff + 1).class' ---> Bignum

Así que trate de un número más grande y que debe obtener un número grande como se esperaba.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top