I want to parse a string and I used parseFloat()
, but it removes all the trailing zeroes. How to prevent this - I need to parse the string exactly - if I have 2.5000, I need exactly the same result as a floating-point number - 2.5000.
You can do
parseFloat(2.5).toFixed(4);
If you need exactly the same floating point you may have to figure out the amount
function parseFloatToFixed(string) {
return parseFloat(string).toFixed(string.split('.')[1].length);
}
console.log(parseFloatToFixed('2.54355'));
But i don't really understand why you even need to use parseFloat then? Numbers in javascript do not retain the floating-point count. so you would have to keep them as strings, and calculate against them as floats.
Also don't forget toFixed may have weird rounding issues in different browsers, for example
console.log((0.1).toFixed(20));
MODERN UPDATE
You can now use Intl.NumberFormat
which is no longer impacted by the odd rounding issues:
const toFixed = new Intl.NumberFormat('en-US', { minimumFractionDigits: 20 })
console.log(toFixed.format(0.1));