JavaScript Numbers

JavaScript Numbers

Contenido original de W3Schools


JavaScript tiene solo un tipo de número. Los números se pueden escribir con o sin decimales.


Ejemplo:

let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

Ver ejemplo

Los números extra grandes o extra pequeños se pueden escribir con notación científica (exponente):

Ejemplo:

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.0012

Ver ejemplos


Los números de JavaScript son siempre de coma flotante de 64 bits

A diferencia de muchos otros lenguajes de programación, JavaScript no define diferentes tipos de números, como integer, short, long, float, etc.

Los números de JavaScript siempre se almacenan como números de coma flotante de doble precisión, siguiendo el estándar internacional IEEE 754.

Este formato almacena números en 64 bits, donde el número (la fracción) se almacena en los bits 0 al 51, el exponente en los bits 52 al 62 y el signo en el bit 63:

Valor (aka Fraction/Mantissa)ExponenteSigno
52 bits (0 - 51)11 bits (52 - 62)1 bit (63)

Precisión entera

Los números enteros (números sin punto ni notación de exponente) tienen una precisión de hasta 15 dígitos.

Ejemplo:

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

Ver ejemplo

El número máximo de decimales es 17.


Precisión flotante

Ejemplo:

La aritmética de coma flotante no siempre es 100% precisa:

let x = 0.2 + 0.1;

Ver ejemplo


Ejemplo:

Para resolver el problema anterior, es útil multiplicar y dividir:

let x = (0.2 * 10 + 0.1 * 10) / 10;

Ver ejemplo


Agregar números y cadenas

ADVERTENCIA !!

JavaScript utiliza el operador + tanto para la suma como para la concatenación.

Los número se suman. Las cadenas se concatenan.

Si sumas dos números, el resultado será un número:

Ejemplo:

let x = 10;
let y = 20;
let z = x + y;

Ver ejemplo


Si agrega dos cadenas, el resultado será una concatenación de cadenas:

Ejemplo:

let x = "10";
let y = "20";
let z = x + y;

Ver ejemplo


Si agrega un número y una cadena, el resultado será una concatenación de cadenas:

Ejemplo:

let x = 10;
let y = "20";
let z = x + y;

Ver ejemplo


Si agrega una cadena y un número, el resultado será una concatenación de cadenas:

Ejemplo:

let x = "10";
let y = 20;
let z = x + y;

Ver ejemplo


Un error común es esperar que este resultado sea 30:

Ejemplo:

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

Ver ejemplo


Un error común es esperar que este resultado sea 102030:

Ejemplo:

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

Ver ejemplo

El intérprete de JavaScript funciona de izquierda a derecha.

Los primeros 10 + 20 se suman porque x e y son ambos números.

Entonces se concatena 30 + "30" porque z es una cadena.


Cadenas numéricas

Las cadenas de JavaScript pueden tener contenido numérico:

let x = 100;         // x is a number

let y = "100";       // y is a string

JavaScript intentará convertir cadenas en números en todas las operaciones numéricas:

Esto funcionará:

let x = "100";
let y = "10";
let z = x / y;

Ver ejemplo

Esto también funcionará:

let x = "100";
let y = "10";
let z = x * y;

Ver ejemplo

Y esto funcionará:

let x = "100";
let y = "10";
let z = x - y;

Ver ejemplo

Pero esto no funcionará:

let x = "100";
let y = "10";
let z = x + y;

Ver ejemplo

En el último ejemplo, JavaScript usa el operador + para concatenar las cadenas.


NaN - No es un número

NaN es una palabra reservada de JavaScript que indica que un número no es un número legal.

Intentar hacer aritmética con una cadena no numérica dará como resultado NaN (No es un número):

Ejemplo:

let x = 100 / "Apple";

Ver ejemplo

Sin embargo, si la cadena es numérica, el resultado será un número:

Ejemplo:

let x = 100 / "10";

Ver ejemplo

Puedes utilizar la función global de JavaScript isNaN() para averiguar si un valor no es un número:

Ejemplo:

let x = 100 / "Apple";
isNaN(x);

Ver ejemplo

Cuidado con NaN. Si usa NaN en una operación matemática, el resultado también será NaN:

Ejemplo:

let x = NaN;
let y = 5;
let z = x + y;

Ver ejemplo

O el resultado podría ser una concatenación como NaN5:

Ejemplo:

let x = NaN;
let y = "5";
let z = x + y;

Ver ejemplo

NaN es un número: typeof NaN devuelve el número:

Ejemplo:

typeof NaN;

Ver ejemplo


Infinito

Infinity (o -Infinity) es el valor que JavaScript devolverá si calcula un número fuera del mayor número posible.

Ejemplo:

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

Ver ejemplo

La división por 0 (cero) también genera Infinito:

Ejemplo:

let x =  2 / 0;
let y = -2 / 0;

Ver ejemplo

Infinity es un número: typeof Infinity devuelve un número.

Ejemplo:

typeof Infinity;

Ver ejemplo


Hexadecimal

JavaScript interpreta las constantes numéricas como hexadecimales si están precedidas por 0x.

Ejemplo:

let x = 0xFF;

Ver ejemplo

Nunca escriba un número con un cero a la izquierda (como 07). Algunas versiones de JavaScript interpretan los números como octales si se escriben con un cero a la izquierda.

De forma predeterminada, JavaScript muestra los números como decimales de base 10.

Pero puedes usar el método toString() para generar números desde la base 2 hasta la base 36.

El hexadecimal es base 16. El decimal es base 10. El octal es base 8. El binario es base 2.

Ejemplo:

let myNumber = 32;
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(12);
myNumber.toString(10);
myNumber.toString(8);
myNumber.toString(2);

Ver ejemplo


Números de JavaScript como objetos

Normalmente los números de JavaScript son valores primitivos creados a partir de literales:

let x = 123;

Pero los números también se pueden definir como objetos con la palabra clave new:

let y = new Number(123);

Ejemplo

let x = 123;
let y = new Number(123);

Ver ejemplo

No cree objetos numéricos.

La palabra clave new complica el código y ralentiza la velocidad de ejecución.

Los objetos numéricos pueden producir resultados inesperados:

Ejemplo:

Cuando se utiliza el operador ==,x y y son iguales:

let x = 500;
let y = new Number(500);

Ver ejemplo


Ejemplo:

Cuando se utiliza el operador ===,x y y no son iguales.

let x = 500;
let y = new Number(500);

Ver ejemplo


Tenga en cuenta la diferencia entre (x==y) y (x===y).

(x == y) ¿verdadero o falso?

let x = new Number(500);
let y = new Number(500);

Ver ejemplo

(x === y) ¿verdadero o falso?

let x = new Number(500);
let y = new Number(500);

Ver ejemplo

La comparación de dos objetos JavaScript siempre devuelve falso.


Referencias

Para obtener una referencia numérica completa, visite nuestro:

Referencia completa de números de JavaScript.

La referencia contiene descripciones y ejemplos de todas las propiedades y métodos de Number.


Traducido con 💚 desde W3Schools.com

Did you find this article valuable?

Support Santos Romero by becoming a sponsor. Any amount is appreciated!