Why all the parseFloat() calls?  You're converting a number to a string and then back to a number and then back to a string.  Isn't one conversion with just toFixed() enough?