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

Reply via email to