Estoy tratando de hacer un juego tipo clicker de cookies para divertirme y me encontré con un problema. A medida que ingresas a números más grandes en muchos juegos, por ejemplo, el clicker de galletas, el contador no solo tiene un número de 20 dígitos, sino que toma el múltiplo de mil, es decir (millones, billones, billones) y así sucesivamente. . Me preguntaba cómo haría esto posible para que pueda mostrar un número drásticamente alto sin dejar de ser fácil de usar y todavía se le aplican las posibles operaciones matemáticas. Una nota importante es que cuando pasa 1000 del sufijo determinado, pasa al siguiente; por otro lado, si pasa por debajo de 1, retrocede un múltiplo de 1000. Si alguien tiene una idea, sería muy útil.
Aquí hay un ejemplo usando números regulares de javascript. Esto genera un número menor que mil más un símbolo
const map = ["", "K", "M", "B", "T", "Quad", "Quint", "Sext", "Sept", "Oct", "Nov", "Dec"]; const outputAsCookies = (number) => { if (number < 1000) return number.toString(); let log = Math.log10(number); let div = log - log % 3; let index = div / 3; while (index >= map.length) { // ran out of map elements index -= 1; div -= 3; } return (number / Math.pow(10, div)).toPrecision(6) + " " + map[index]; }; console.log(outputAsCookies(100)); console.log(outputAsCookies(1000)); console.log(outputAsCookies(98765432109876)); console.log(outputAsCookies(3.1415926535e32));