Main Page

toExponential

The
toFixed()
method returns a string representation of a number with a specified number of decimal
points. For example:
var oNumberObject = new Number(99);
alert(oNumberObject.toFixed(2)); //outputs “99.00”
Here, the
toFixed()
method is given an argument of
2
, which indicates how many decimal places
should be displayed. As a result, the method returns the string
“99.00”
, filling out the empty decimal
places with 0s. This method can be very useful for applications dealing with currency. The
toFixed()
method can represent numbers with 0 to 20 decimal places; other values may cause errors.
Another method related to formatting numbers is the
toExponential()
method, which returns a string
with the number formatted in e-notation. Just as with
toFixed()
,
toExponential()
accepts one argu-
ment, which is the number of decimal places to output. For example:
var oNumberObject = new Number(99);
alert(oNumberObject.toExponential(1)); //outputs “9.9e+1”
This code outputs
“9.9e+1”
as the result, which you may remember from the earlier explanation, repre-
sents 9.9 x 10
1
. The question is, what if you don’t know the proper format to use for a number: fixed or
exponential? That’s where the
toPrecision()
method comes in.
The
toPrecision()
method returns either the fixed or exponential representation of a number, depend-
ing on which makes the most sense. This method takes one argument, which is the total number of digits
to use to represent the number (not including exponents). Example:
var oNumberObject = new Number(99);
alert(oNumberObject.toPrecision(1)); //outputs “1e+2”
In this example, the task is to represent the number
99
with a single digit, which results in
“1e+2”
, oth-
erwise known as 100. Yes,
toPrecision()
rounded the number to get as close as possible to the actual
value. Because you can’t represent 99 with any fewer than 2 digits, this rounding had to occur. If, how-
ever, you want to represent 99 using two digits, well, that’s easy:
var oNumberObject = new Number(99);
alert(oNumberObject.toPrecision(2)); //outputs “99”
Of course the output is
“99”
, because that is the exact representation of the number. But what if you
specify more than the number of digits needed?
var oNumberObject = new Number(99);
alert(oNumberObject.toPrecision(3)); //outputs “99.0”
In this case,
toPrecision(3)
is exactly equivalent to
toFixed(1)
, outputting
“99.0”
as the result.
The
toFixed(), toExponential()
, and
toPrecision()
methods round up or down to accu-
rately represent a number with the correct number of decimal places.
28
Chapter 2
05_579088 ch02.qxd 3/28/05 11:35 AM Page 28


JavaScript EditorFree JavaScript Editor     Ajax Editor


©

R7