every time i use the Math.round(4.45678765e-6 * 10000)/10000 it gives me a 0 value but if i remove the e-6 it gives the correct answer 4.4567 what shoul i do? here\'s my code. t
Not 100% sure what your after but if you want the power;
var f = 4.45678765e-6;
var exp = Math.floor(Math.log(Math.abs(f)) / Math.LN10);
// -6
var f2 = f * Math.pow(10, -exp);
// 4.45678765
4.45678765e-6
is 0.00000445678765
, that number with only five digits after decimal point is 0.00000
so JavaScript is giving you the correct result.
You can use -
var x = Number((4.45678765 * 10000)/10000).toFixed(5);
The toFixed( <digit> )
will restrict your value to those digits after decimal point.
try .toPrecision(5) instead. IE: (4.45678765).toPrecision(5)
use 'numObj.toExponential([fractionDigits])'
your case is its raison d'être, and this overlooked gem seems to be a javascript method rarely given its due!
Quote from MDN:
Returns a string representing a Number object in exponential notation with one digit before the decimal point, rounded to fractionDigits digits after the decimal point
More simply put, it limits the number of decimal places to show in exponential notation.
var x = 4.45678765e-6.toExponential(5) //returns 4.45679e-6
var x = 4.45678765e-6.toExponential(2) //returns 4.46e-6
See examples of more rounding with exponential notation here: https://stackoverflow.com/a/36532545/5440638