[fpc-pascal] Floating point question
Bernd Oppolzer
bernd.oppolzer at t-online.de
Sat Feb 17 16:38:04 CET 2024
Am 17.02.2024 um 14:38 schrieb Michael Van Canneyt via fpc-pascal:
>
> There can be discussion about the rules that the compiler uses when it
> chooses a type, but any given set of rules will always have
> consequences that may or may not be desirable.
>
> Possibly some compiler switches can be invented that modify the
> compiler's
> rules for the constant type to use.
>
If the rules at the moment make this a single:
const xs = 64.015625; { 64 + 1 / 64 }
because it can be represented correctly (without rounding error) in a
binary single FP IEEE representation,
and this a double or extended type:
const xd = 64.1; { no finite representation in binary or hex }
with all the observed effects on computations that the other posters
here have pointed out
my personal opinion would be:
- never use such (implicitly typed) definitions ... but that's standard
Pascal, after all
- try to convince the compiler builders that we need a better solution here
IMO, a compiler switch that gives all FP constants the best available
precision would solve the problem -
BTW: WITHOUT forcing expressions where they appear to use this
precision, if the other parts of the expression
have lower precision.
In fact, when parsing and compiling the expressions, you always can
break the problem down to TWO operands
that you have to consider, and if one of them is a literal constant, it
should not force the type of the operation to
a higher precision ... that's what I would do.
That's why I write all those mails (although I am not an active FPC
user), because I want all Pascal versions around
to implement a clear and UNDERSTANDABLE language without strange effects.
Kind regards
Bernd
> (incidentally, this is one of the reasons the FPC team does not want
> to make
> inline variables as Delphi does, since there the type will again be
> determined by
> the compiler - just as for constants, leading to ambiguity...)
>
> Michael.
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list