BLOG

Featured image of post NUMBER - Tipos de Datos Primitivos

NUMBER - Tipos de Datos Primitivos

Información y datos interesantes sobre los el NUMBER, un tipo de dato primitivo

¿Qué es un numero?

En JS cualquier número es un number. 2, 3, -1, 3.14

1
2
3
console.log(typeof -0); // number
console.log(typeof 10); // number
console.log(typeof 9312.1); // number

Si comparamos 0 === -0, ambos tienen el mismo valor.

1
console.log(0 === -0) // true

El estandar IEEE754

Al representar números decimales, JS y un montón de otros lenguajes no son muy precisos.

1
2
console.log(0.1 + 0.2) // 0.30000000000000004
console.log((0.1 + 0.2).toFixed(80)) // 0.300000000000000044408920985006261616945266723632812500

Cuando usemos decimales, es importante truncar la cantidad de dígitos

1
2
3
let decimal = .1 + 0.2
console.log(decimal.toFixed(2)) // 0.30 (es un string)
console.log(+decimal.toFixed(2)) // 0.30 (es un number)

Números seguros

El número mínimo que podemos usar es:

1
2
let numMin = -(2 ** 53) + 1
console.log(numMin) //-9007199254740991

Y el máximo

1
2
let numMax = 2 ** 53 + 1
console.log(numMax) //9007199254740991

Si pasamos de estos números, ya serán aproximaciones

1
2
console.log(numMax + 1) //9007199254740992
console.log(numMax + 2) //9007199254740992

También se puede acceder a ellos con Number.MAX_SAFE_INTEGER || Number.MIN_SAFE_INTEGER

1
console.log(numMin === Number.MIN_SAFE_INTEGER) // true

Dentro de este rango de números es seguro realizar operaciones numéricas

1
2
console.log(Number.isSafeInteger(numMin)) //true
console.log(Number.isSafeInteger(990719925474099321)) //false

Infinito

Hay 2 números que van más allá de estos

1
2
Infinity // Infinity
-Infinity //-Infinity

Para saber si un número es finito:

1
2
console.log(isFinite(300)) // true
console.log(isFinite(Infinity)) // false

Infinity o -Infinity es el resultado de dividir un numero /0 o /-0

1
console.log(3/0) // Infinity

Pero, y 0/0 ?

1
console.log(0/0) // NaN

NaN

Not A Number o NaN es de tipo number y es el resutado de cómputos invalidos

1
2
3
4
5
6
7
console.log("hola" / 3) // NaN
console.log(7 / 'x') // NaN
console.log(NaN + 10) // NaN

console.log(NaN === NaN) // false
console.log(isNaN(30)) // false
console.log(isNaN(NaN)) // true

Indice

  1. Tipos de Datos Primitivos
  2. String
  3. Number <– Estás aquí
  4. Boolean
  5. Null y Undefined
  6. Symbol

Información y ejemplos obtenidos de La Cocina del Código