On 29 Oct 2007, at 15:30, L wrote:
It's just one more funny thing one must realize,
when comparing real numbers with some exact
real constants. After this, I will try to never
compare doubles directly, but using tricks like
above. Because, in this digital world
1 + 0.4 - 0.4 <> 1.
My opinion:
This is ludicrous.
The end user is using a high level language and should not care
whether the
computer is digital or analog.
It's not about digital vs analog, it's about limited precision. And
you simply cannot ignore that, unless you only use extremely high
level primitives. For example, when adding a bunch of floating point
numbers, you should sort them from small to large because otherwise
you lose a lot more precision. So unless you use an "AddFloat
(realarray, count): float" function, you also have to care.
For example, my calculator subtracts 0.4 just fine, and it is digital!
It has been explained earlier in this thread why that is so.
I don't care about decimal points or any other excuses. THe fact is
people
expect languages on computers to work like their calculator does or
like
how grade school math worked.. simple, sensible.
Then they should not use floating point in programming languages, but
Mathlab, Maple, or special purpose libraries/types.
Jonas
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal