Digamos que tengo un flotador x que tiene una parte entera a parte decimal b , es decir, x = ab . ¿Cómo puedo formatear x en JavaScript de modo que tenga como máximo n dígitos, como se muestra a continuación?
const n = 5 format(123.0) == '123' format(123.01) == '123.01' format(123.012) == '123.01' format(0.0123) == '0.0123' format(0.01234) == '0.0123'Basado en una respuesta eliminada recientemente que tenía la lógica pero que realmente no funcionó, se me ocurrió esta solución:
const format = (number, digits = 5) => { const str = number + ''; // convert to string let [integer, decimal] = str.split('.'); // split by dot delimiter const integerDigits = integer.length; if (integerDigits >= digits) { return integer; } else { let decimalDigits = digits - integerDigits; decimal = Number('0.' + decimal.substring(0, decimalDigits)).toString(); return integer + '.' + decimal.split('.')[1]; } }