Red de conocimiento informático - Material del sitio web - En el método java static public boolean isNaN(float v) { return (v ! = v } del código fuente Float, ¿qué significa v ! = v?

En el método java static public boolean isNaN(float v) { return (v ! = v } del código fuente Float, ¿qué significa v ! = v?

Es una pregunta antigua que nunca se ha adoptado. No quiero responder a este tipo de preguntas que no se han adoptado, sino como una solución para mí y para otras personas que también tienen este problema. También puede echar un vistazo a esta pregunta como referencia, o puede hablar brevemente sobre su comprensión:

Float de Java define un campo NaN y su valor es 0.0f/0.0f

p>

This El valor en sí es bastante especial. Representa un estado o tipo no numérico. Este valor no es igual a ningún valor, incluido él mismo (se puede entender aproximadamente que NaN y NaN son del mismo tipo). Somos del mismo tipo, no soy tú. Más profundamente, creo que la razón puede ser que cada NaN es del mismo tipo, pero no soy tú. Creo que la razón puede ser que a cada NaN se le asignará una dirección separada. lugar, por lo que al comparar la dirección de memoria de NaN == NaN, se debe devolver falso, es decir, NaN! = NaN debe ser verdadero).

Además, hay algunas características especiales a considerar: Float tiene un método nativo llamado: intBitsToFloat(Int), que anota dos consideraciones especiales al manejar valores numéricos:

p>

Uno Una de ellas es que el método se implementa teniendo en cuenta los valores de NaN. iniBitsToFloat será igual a sí mismo (por lo tanto, si el valor del objeto Float es NaN, usar el método igual para comparar el valor de otra variable con el valor de NaN dará un resultado igual), y también define que NaN es mayor que todos los demás valores (incluso el Infinito positivo, que es mayor que el valor de un número de coma flotante);

El segundo punto también es muy interesante, estipula que -0.0f es menor que 0.0f;

Los dos anteriores son métodos nativos, implementados. La lógica en sí ya es un hecho (se puede llamar diseño);

Me tomó mucho tiempo escribirlo, pero supongo. la cantidad de personas que lo leerán no es tanta como la cantidad de palabras, así que también podría publicar el CSDN siguiente...