Tengo un pequeño problema con IsNaN. Cuando se le pasa el número 'Cero', se dispara como verdadero, en lugar de falso como se esperaba.
Estoy analizando un número de una cadena, convirtiéndolo en un flotante usando parseFloat:
let val = parseFloat(value.substring(value.indexOf(";")+1, value.lastIndexOf(";")));luego almacenando 'val' en una matriz Esto funciona perfectamente bien y funciona como se esperaba, sin embargo, cuando verifico más tarde para asegurarme de que de hecho es un número con IsNAN, usando esta línea de código: let DispVal = (isNaN(val) || valor== "")? "Valor: Cargando" : "Valor:" + val;
Esto funciona perfectamente bien, a menos que el número sea cero. Si el número es cero, lo usa como 'Valor: Cargando'
Pensé que esto puede deberse a que '0' también se considera falso, pero la forma en que la documentación de isNaN me hace dudar un poco de eso.
¿Hay algo que estoy haciendo mal aquí, o algo en lo que nuestros datos podrían estar siendo dañados?
En js, el resultado de la expresión 0 == "" es (sorprendentemente) true .
Esto se debe a que "" está siendo obligado a convertirse en un número y Number("") es 0
Entonces, cuando val es igual a 0 , obtienes tu estado de carga