> Manuales > Manual de JavaScript

Clase que modeliza el tipo de datos numérico.

Clase Number en Javascript

Vamos a ver a continuación otra de las clases nativas de Javascript para trabajo con datos numéricos. Se trata de la clase Number, que modeliza el tipo de datos numérico y fue añadida en la versión 1.1 de Javascript (con Netscape Navigator 3).

Qué ofrece la clase Number

Como veremos en este artículo, la clase Number nos sirve para crear objetos que tienen datos numéricos como valor y realizar algunas operaciones sencillas a partir de sus métodos.

Lo cierto es que para trabajar con números generalmente usamos los operadores, por lo que es probable que no llegues a utilizar la clase Number, por lo menos en la mayoría de los scripts. Pero en resumen, con la clase Number tendremos algunas utilidades generales para trabajar con datos que tienen el tipo de datos numérico, como podrías imaginar. Viene bien conocerla para tener una noción más clara sobre lo que puedes hacer con el lenguaje.

Conocimos el tipo de datos numérico en el primer manual de javascript. Este nos servía para guardar un valores numéricos sin más. Este objeto modeliza este tipo de datos y la clase en si, ofrece algún método que puede ser útil. Para los cálculos matemáticos y el uso de números en general vamos a utilizar siempre las variables numéricas vistas anteriormente.

Constructor de la clase Number

La utilidad principal de la clase Number, al menos la que podrías usar con más frecuencia, es la de crear valores numéricos a través de valores que puedes tener en otros tipos de datos.

Para ello se usa el constructor de la clase Number, al que le enviamos por parámetro aquello que queremos convertir en un dato de tipo Number. El valor del objeto Number que se crea depende de lo que reciba el constructor de la clase Number. Con estas reglas:

Ejemplos de construcción de valores numéricos

Ahora veremos cómo podemos usar el constructor de la clase Number para conseguir producir datos donde podremos estar seguros que serán de tipo number. Su funcionamiento se puede resumir en estos ejemplos.

var n1 = new Number() 
document.write(n1 + "<br>") 
//muestra un 0

var n2 = new Number("hola") 
document.write(n2 + "<br>") 
//muestra NaN

var n3 = new Number("123") 
document.write(n3 + "<br>") 
//muestra 123

var n4 = new Number("123asdfQWERTY") 
document.write(n4 + "<br>") 
//muestra NaN

var n5 = new Number(123456) 
document.write(n5 + "<br>") 
//muestra 123456

var n6 = new Number(false) 
document.write(n6 + "<br>") 
//muestra 0

var n7 = new Number(true) 
document.write(n7 + "<br>") 
//muestra 1

Propiedades de la clase Number

Esta clase también nos ofrece varias propiedades que contienen los siguientes valores:

NaN

Como hemos visto, significa Not a Number, o en español, no es un número.

MAX_VALUE y MIN_VALUE

Guardan el valor del máximo y el mínimo valor que se puede representar en Javascript

NEGATIVE_INFINITY y POSITIVE_INFINITY

Representan los valores, negativos y positivos respectivamente, a partir de los cuales hay desbordamiento.

Number.MAX_SAFE_INTEGER Number.MIN_SAFE_INTEGER

Son el máximo valor representable y el mínimo valor representable (negativo)

Podrás apreciar que estas constantes son muy similares a MIN_VALUE y MAX_VALUE. La diferencia es que MIN_VALUE y MAX_VALUE usan notación científica. En el caso de MIN_SAFE_INTEGER y MAX_SAFE_INTEGER este valor se expresa con un entero común.

Para una muestra más gráfica, los valores de estas constantes son los siguientes:

Number.MAX_SAFE_INTEGER
9007199254740991

Number.MIN_SAFE_INTEGER
-9007199254740991

Number.MAX_VALUE
1.7976931348623157e+308

Number.MIN_VALUE
5e-324

Number.EPSILON

La distancia más pequeña dados dos números representables en Javascript.

Estas propiedades son de clase, así que accederemos a ellas a partir del nombre de la clase, tal como podemos ver en este ejemplo en el que se muestra cada uno de sus valores.

document.write("Propiedad NaN: " + Number.NaN) 
document.write("<br>") 
document.write("Propiedad MAX_VALUE: " + Number.MAX_VALUE) 
document.write("<br>") 
document.write("Propiedad MIN_VALUE: " + Number.MIN_VALUE) 
document.write("<br>") 
document.write("Propiedad NEGATIVE_INFINITY: " + Number.NEGATIVE_INFINITY) 
document.write("<br>") 
document.write("Propiedad POSITIVE_INFINITY: " + Number.POSITIVE_INFINITY)

Métodos de la clase Number

Además la clase Number tiene algunos métodos, los cuales ya conoces prácticamente todos, porque hemos hablado de ellos en capítulos anteriores del manual. Los métodos más usados de esta clase los encuentras como funciones sueltas del lenguaje, por lo que no se suele usar mucho sus correspondientes en la clase Number.

Number.isNaN()

Sirve para saber si lo que le envíes por parámetro es un "no número", es decir, devuelve true si el parámetro enviado es NaN.

Number.isNaN('hola') // devuelve false
Number.isNaN(parseInt('hola')) // devuelve true

Number.isFinite()

Sirve para saber si el parámetro enviado es un numérico y además es finito. Devuelve false si el valor es "infinity".

let x = 1/0;
Number.isFinite(x); // devuelve false
Number.isFinite(5); // devuelve true

Number.isInteger()

Develve true si el número enviado es un entero.

Number.isInteger('9') // devuelve false
Number.isInteger(9) // devuelve true

Number.isSafeInteger()

Te dice si es un entero seguro.

Number.parseFloat()

Esta función convierte cualquier cosa en un número en coma flotante, con decimales, igual que la función parseFloat().

Number.parseFloat('9.9')

Number.parseInt()

La conocida función parseInt() dentro de la clase Number.

Number.parseInt('9.9') // devuelve 9
Number.parseInt('hohoho') // devuelve NaN

Conclusión

Hemos conocido una de las clases disponibles en el lenguaje, útil para el tratamiento de números, tanto enteros como reales.

En el siguiente artículo vamos a conocer otra clase similar, aunque en este caso para trabajar con los tipos de datos boleanos: Clase Boolean en Javascript.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual