numbers.js
- Practical uses
Correcting rounding errors and number formatting for shopping cart programs
- Version requirement
JavaScript 1.1
- Functions
twoPlaces(),round(),totals()
JavaScript performs floating point arithmetic a little differently than we might expect; the result is that many of our calculations also come out slightly different than what we expect. The DevEdge Newsgroup FAQ at http://developer1.netscape.com:80/support/faqs/champions/javascript.html#2-2 uses the example 0.119 * 100 = 11.899999. It’s also common to want to display number in terms of dollars and cents. The functions in numbers.js are designed to help with both situations. All three functions included are based on those at http://www.irt.org/script/number.htm maintained by Martin Webb. Figure 6.14 shows ch06\numbers.html loaded.

Figure 6-14. Better looking numbers, thanks to JavaScript
The numbers displayed under the “Two Decimal Places”
heading shows how function twoPlaces() formats
numbers to place them in a dollars and cents format. The other two
headings display the difference between the expression 51.02 - 3.8
both without and with function round() and
totals(), the latter of which is the desired
effect. Example 6.9 shows
numbers.js.
Example 6-9. number.js
1 function twoPlaces(amount) { 2 return (amount == Math.floor(amount)) ? amount + '.00' : 3 ((amount*10 == Math.floor(amount*10)) ? ...