También "NaN" .to_f devuelve 0 en lugar de NaN.¿Cómo declaro NaN (no un número) en Ruby?
37
A
Respuesta
2
0.0/0.0
funciona para mí en ruby 1.8.6.
El hilo ligada a por Pesto tiene esta función, que debería funcionar en plataformas donde números de coma flotante que se ejecutan conforme a IEEE 754:
def aNaN
s, e, m = rand(2), 2047, rand(2**52-1)+1
[sprintf("%1b%011b%052b", s,e,m)].pack("B*").unpack("G").first
end
17
La forma más sencilla es utilizar 0.0/0.0
. "NaN" .to_f no funciona, y hay alguna discusión in this thread sobre por qué.
+4
'0/0.0' también funciona .. (¡PS. ¡ESTO ES INSENTO!) –
30
Si necesita probar si un número es NaN, puede utilizar #nan?
en él:
ruby-1.8.7-p352 :008 > (0/0.0).nan? #=> true
ruby-1.8.7-p352 :009 > (0/1.0).nan? #=> false
45
0
Asignación de una variable en los carriles se puede realizar de este modo (útil para la unidad de pruebas):
o.amount = BigDecimal.new('NaN')
expect(o.valid?).to be false
Cuestiones relacionadas
- 1. ver número NaN
- 2. ¿Puede alguien explicarme NaN en Ruby?
- 3. ¿NaN negativo no es un NaN?
- 4. Comprobando si un número complejo tiene NaN
- 5. Cómo rastrear un NaN en C++
- 6. ¿Por qué no declaro NSInteger con un *
- 7. ¿Cómo declaro un objetivo opcional en automake?
- 8. ¿Cómo declaro una matriz de tamaño inicial indefinido o no?
- 9. ¿Cómo declaro un atributo en Python sin un valor?
- 10. R - ¿cómo declaro un vector de Fecha?
- 11. ¿Cómo declaro un arrays de cadenas 2D?
- 12. Formateando un flotador nan en python
- 13. ¿NaN es igual a NaN?
- 14. ¿Por qué JavaScript dice que un número no es un número?
- 15. Ruby: determine si un número es un número primo
- 16. ¿Cómo declaro un entero de 32 bits en Java?
- 17. ¿Cómo declaro e inicializo un vector int 2d en C++?
- 18. ¿Cómo declaro una variable global en VBA?
- 19. ¿Cómo declaro una matriz simbólica en Octave?
- 20. ¿Cómo declaro dos matrices dimensionales en javascript?
- 21. NaN magia constante en Java
- 22. Número máximo de Ruby
- 23. En Java, ¿qué significa NaN?
- 24. Ruby: contar el número de 1 de un número binario
- 25. Cómo resolver CALayerInvalidGeometry ', razón:' La posición de CALayer contiene NaN: [nan nan]?
- 26. enviando NaN en json
- 27. Enmascare un EditText con número de teléfono Formatee NaN como en PhoneNumberUtils
- 28. ¿Por qué el número ([]) === 0 y el número ({}) === NaN en Javascript?
- 29. posición CALayer contiene NaN: [nan -0,5]
- 30. Prueba de NaN en VBA/VB6
que da ZeroDivisionE rror: dividido por 0 –
¿Qué versión de Ruby estás usando? –
Nota: 0/0 da un ZeroDivisionError, pero 0.0/0.0 no. – Kudu