To get a float with reduced precision, you could use toPrecision()
like you do, and then parse the scientific notation with parseFloat(), like so:
result = parseFloat(num.toPrecision(2));
If you do not wish to reduce precision, you could use toFixed() to get the number with a certain number of decimals.