One of the most common tasks is to format a number for currency display- an integer followed by two decimals.
You may be tempted to use number rounding to first shift the number’s decimal places (via multiplication), round it, then shift the decimal back (via division) to pound the number into your hard earned dollar, though that won’t work in many cases.
For example, consider the number 120. Number rounding certainly won’t get you to 120.00.
Number.toFixed(x) Formats any number for “x” number of trailing decimals.
The number is rounded up, and “0”s are used after the decimal point
if needed to create the desired decimal length.
Number.toPrecision(x) Formats any number so it is of “x” length. Also called significant digits.
A decimal point and “0”s are used if needed to create the desired length
The best way to see all the subtleties of toFixed() is to see it in action:
var dummyNumber=2489.8237 dummyNumber.toFixed(3) //returns 2489.824 (round up) dummyNumber.toFixed(2) //returns 2489.82 dummyNumber.toFixed(7) //returns 2489.8237000 (padding)
Displaying any number in currency format can’t get any easier!
To toPrecision() now:
var dummyNumber=123.45 dummyNumber.toPrecision(6) //returns 123.450 (padding) dummyNumber.toPrecision(4) //returns 123.5 (round up) dummyNumber.toPrecision(2) //returns 1.2e+2 (you figure it out!)
toPrecision() is useful if your number must be of a certain length.
if (dummyNumber.toFixed) //if browser supports toFixed() method