Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaScript - Keep trailing zeroes [duplicate]

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.

like image 724
Isadora Avatar asked Sep 05 '25 03:09

Isadora


1 Answers

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));
like image 146
Chad Scira Avatar answered Sep 07 '25 19:09

Chad Scira