Feedback on: irt.org FAQ Knowledge Base Q1072
irt.org | About | Feedback | 3796 [ previous next ] Feedback on: irt.org FAQ Knowledge Base Q1072
Sent by Simon Adamyk on April 21, 2002 at 13:36:05:
Worth: Very worth reading
Length: Too short
Technical: Not technical enough
Comments: First, thanks very much INDEED for a first class website which has provided me with great inspiration and helped me out of many a tight JavaScripting corner. It is truly excellent, and you have my admiration. My question is whether this rounding error is one which also occurs in IE 5.5 and IE6? I used the outputCents function from FAQ 723 but it seemed to produce incorrect rounding in some circumstances but not in others (which puzzles me). Consider the following mini-script to demonstrate the problem: <html> <script language="JavaScript"> function outputCents(amount) { amount = Math.round( ( (amount) - Math.floor(amount) ) *100); return (amount < 10 ? '.0' + amount : '.' + amount); } document.write("The decimal part of 1.5 rounded to two decimal places is " + outputCents(1.5) + " document.write("The decimal part of 1.51 rounded to two decimal places is " + outputCents(1.51) + "<br>"); document.write("The decimal part of 1.555 rounded to two decimal places is " + outputCents(1.555) + "<br>"); document.write("The decimal part of 1.549 rounded to two decimal places is " + outputCents(1.549) + "<br>"); document.write("The decimal part of 1.551 rounded to two decimal places is " + outputCents(1.551) + "<br>"); document.write("The decimal part of 123.555 rounded to two decimal places is " + outputCents(123.555) + "<br>"); </script> </html>
Note particularly the difference between the 1.555 and 123.555 outputs. Maybe it's me being stupid, I don't know. Anyway, I can't explain all this and thought you might be interested.
With my thanks again, Simon Adamyk
|