Skip to content

Instantly share code, notes, and snippets.

@m4n50n
Created May 24, 2022 13:44
Show Gist options
  • Save m4n50n/0756ee32c0f3b16afb257f9ee1908674 to your computer and use it in GitHub Desktop.
Save m4n50n/0756ee32c0f3b16afb257f9ee1908674 to your computer and use it in GitHub Desktop.
Counter calculator
/*
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Math/floor
Math.floor() Devuelve el máximo entero menor o igual a un número. Es decir: 0,1 = 0; 1.6 = 1;
Es decir, devuelve solo la parte entera del número (o sea, sin decimales)
Operador %
https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Operators/Remainder
El operador resto (%) devuelve el resto de la división entre dos operandos.
*/
const digits = (numero) => {
/* Explicación:
En el contador (teniendo por ejemplo 123 segundos):
0 1 2 3
| | | |
millares centenas decenas unidades
- Una decena = 10 unidades (para saber las decenas del número dividimos entre 10)
- Una centena = 100 unidades (para saber las centenas de un número dividimos entre 100)
- Un millar = 1000 unidades (para saber los millares de un número dividimos entre 1000)
Si por ejemplo queremos sacar las decenas de 1 (1/10) el resultado será 0,1 porque el número no tiene decenas, así que Math.floor() lo convertirá en 0.
Si por ejemplo queremos saber las centenas de 223, al dividir 223/100 dará 2,23 y como lo que nos interesa sólo es entero, pues Math.floor().
La operación resto (%) la usamos para garantizar que el número que queremos (unidad, decena, centena o millar) siempre va a a tener un solo dígito.
Por ejemplo, si tenemos esta misma función pero sin %:
console.log("unidades", Math.floor(numero));
console.log("decenas", Math.floor(numero / 10));
console.log("centenas", Math.floor(numero / 100));
console.log("millares", Math.floor(numero / 1000));
Y el número a mostrar fuera 1234, el resultado sería:
"unidades", 1234
"decenas", 123
"centenas", 12
"millares", 1
Las unidades, decenas y centenas tendrían más de un dígito y ya no nos serviría, así que con la operación % lo que nos traemos en cada momento es el resto de dividir el número entre 10 (la cual nos traería el último dígito del número, que es lo que queremos)
*/
console.log("----------- NUMERO RECIBIDO: ", numero);
console.log("unidades", Math.floor(numero % 10));
console.log("decenas", Math.floor(numero / 10) % 10);
console.log("centenas", Math.floor(numero / 100) % 10);
console.log("millares", Math.floor(numero / 1000) % 10);
console.log("--");
console.log("unidades sin %", Math.floor(numero));
console.log("decenas sin %", Math.floor(numero / 10));
console.log("centenas sin %", Math.floor(numero / 100));
console.log("millares sin %", Math.floor(numero / 1000));
};
digits(1);
digits(98);
digits(10);
digits(20);
digits(99);
digits(100);
digits(1000);
digits(1234);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment