Tengo un número con una cantidad extrema de decimales.
1.5583255870000002e+36
Estoy luchando por encontrar una buena manera de redondear esto a 2 decimales usando JavaScript.
Probé algunas variaciones usando parseFloat() Math.round() y .toFixed() .
Aquí hay un ejemplo usando .toPrecision() .
App.currentUSDBalance = Number((App.currentBalance * App.maticPrice).toPrecision(2)); El resultado es 1.6e+36 . Esperaba algo como 1.59 .
Gracias,
El siguiente fragmento debería ser la respuesta a su pregunta actualizada:
const yourNumber=1.234567890123e36, ndigits=3; // returns two variations of the solution: function mySigDig(num,dig){ return [+(num/(10**Math.floor(Math.log10(num)))).toPrecision(dig), +num.toPrecision(dig).replace(/e.*/,"")] } console.log(mySigDig(23,ndigits)); console.log(mySigDig(2345678,ndigits)); console.log(mySigDig(yourNumber,ndigits));Disculpas por la terrible pregunta.
Terminé resolviendo esto convirtiendo a cadena y soltando el e+X .
App.currentUSDBalance = Number((App.currentBalance * App.maticPrice).toPrecision(3)).toString().split('e')[0];Gracias por la ayuda.