| |
| Working with Floating Point, Double, Single, Real, Extended types |
 |
I have two floating point values that are the same, yet when I compare them using " if d = d2 then .. " or " if d <> d2 then .. " the results are incorrect. Is this a bug?
No. Unlike integers, IEEE floating point numbers are only approximates, not exact numbers. You should never use = or <> to compare two floating point numbers. Instead, subtract the two numbers and compare them against a very small number.
Example:
if abs(d -d2) < 0.0000 then
ShowMessage('D and D2 are equal');
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|