Función parseFloat()‎ en JavaScript

Función parseFloat()‎ en JavaScript

La función parseFloat()‎ en javascript interpreta una cadena que se le pasa como argumento y devuelve un número con un punto decimal (flotante).

Características generales

Una función parseFloat() en javascript es una función que no está vinculada a ningún objeto, acepta un argumento que es una cadena, intenta interpretarlo y devuelve un número con un punto decimal. Si la función encuentra un carácter que no es un signo (+ o – ), un número (0-9) o un exponente ( e), la función devuelve el valor desde el inicio de la cadena hasta ese punto, todos los caracteres posteriores serán ignorados y se permiten espacios antes y después de la cadena.

Si el valor es una cadena de texto y el primer carácter no se puede convertir en un número, la función devolverá el parseFloat valor NaN. El valor NaNno representa un número en ningún sistema numérico, puede llamar a la función isNaN para ver si la salida de la función parseFloat es NaN. Recuerde que los valores NaN cuando se usan en operaciones matemáticas darán como resultado un retorno completo de la expresión NaN.

La función parseFloat puede interpretar y devolver el valor Infinity, y la función puede usarse isFinite para averiguar si la salida es un número finito, es decir, no Infinity‎-InfinityNaN. Una función parseFloat puede interpretar un objeto si tiene la función toStringvalueOf.

Estructura parseFloat() javascript

parseFloat(value)

value

El valor a interpretar.

Valor a devolver

Un número con punta decimal resultante de la interpretación de la cadena dada. Si la conversión de cadena a número no es posible, se devolverá el valor NaN.

Ejemplos y aplicaciones en código

Reclutamiento parseInt. Todos los siguientes ejemplos devolverán el valor 3.14:

parseFloat(3.14);
parseFloat('3.14');
parseFloat('314e-2');
parseFloat('0.0314E+2');
parseFloat('3.14more non-digit characters');

var foo = Object.create(null);
foo.toString = function () { return "3.14"; };
parseFloat(foo);

var foo = Object.create(null);
foo.valueOf = function () { return "3.14"; }; 
parseFloat(foo);

El siguiente ejemplo devolverá el valor NaN:

parseFloat('FF2');

La función de interpretación sigue reglas más estrictas. A veces es útil tener una función que interprete cadenas como números pero con reglas más estrictas. Las expresiones regulares pueden ayudar aquí:

var filterFloat = function(value) {
    if (/^(\-|\+)?([0-9]+(\.[0-9]+)?|Infinity)$/
      .test(value))
      return Number(value);
  return NaN;
}

console.log(filterFloat('421'));               // 421
console.log(filterFloat('-421'));              // -421
console.log(filterFloat('+421'));              // 421
console.log(filterFloat('Infinity'));          // Infinity
console.log(filterFloat('1.61803398875'));     // 1.61803398875
console.log(filterFloat('421e+0'));            // NaN
console.log(filterFloat('421hop'));            // NaN
console.log(filterFloat('hop1.61803398875'));  // NaN

Tenga en cuenta que la función que conocíamos en el ejemplo anterior no acepta algunos números escritos en formato correcto, como 1.‎.5.

Soporte de navegadores

CaracterísticaChromeFirefoxIEOperaSafari
Soporte básico