Closed
Bug 202827
Opened 22 years ago
Closed 22 years ago
Adding some floating point numbers incorrectly using the + operator
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
People
(Reporter: william.foreman, Assigned: rogerl)
Details
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
Build Identifier: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
When I add 1.89 and 1 (1.89 + 1) using javascript, I get the answer
2.8899999999999997. But if I add 1.89 and 10, I get 11.89.
This happens every time, but only with certain numbers.
Reproducible: Always
Steps to Reproduce:
1. var num = 1.89 + 1;
2. alert num;
3.
Actual Results:
I get a message box with the value 2.8899999999999997
Expected Results:
Given me 2.89 :-)
Comment 1•22 years ago
|
||
This really does depend on your definition of correct :-)
Mozilla is following the appropriate standards here--the issue centers around
trying to represent base-10 numbers in a computer that does base-2 math. See
the references in the duped bug for more info.
*** This bug has been marked as a duplicate of 20140 ***
Status: UNCONFIRMED → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
Comment 2•22 years ago
|
||
Marking Verified Duplicate. Note that JavaScript is not the only
language in which this behavior occurs. Also C, C++, Java, etc.
Here are some more references:
bug 42134 "JavaScript should be more lenient comparing (==) floats"
bug 129300 "Error in javascript internal routine : parseFloat"
bug 154103 "arithmetic error in JavaScript Engine"
bug 160173 "Error de punto flotante al sumar en JavaScript"
bug 186563 "Number.toFixed: loss of precision"
bug 190303 "Javascript floating point calculation"
Good web references:
http://developer.netscape.com/docs/manuals/js/core/jsref15/number.html#1200964
http://www.merlyn.demon.co.uk/js-maths.htm
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•