pensé que resulten de la operación matemática en un NaN me diera un NaN atrás, pero Math.round(Float.NaN) == 0
¿Por qué Math.round() devuelve 0 para argumentos NaN?
¿Cuál es la razón de tal comportamiento de Math.round()?
Curiosamente, C# comporta de manera diferente: http://msdn.microsoft.com/en-us/library/75ks3aby.aspx
como @pst ha dicho, es el comportamiento normal definido para NaN: "Si el argumento es NaN, el resultado es 0". –
La razón fundamental es que solía haber un error en 'Math.round()' cuando se llamaba en NaN, podía arruinar futuras llamadas a 'Math.round()': http://bugs.sun.com/bugdatabase/ view_bug.do?bug_id=4755500 –
Es probable que la diferencia sea; en Java, devuelve 'long' que no puede ser' Double.NaN', mientras que un C# devuelve 'double' –