[fpc-pascal] Freepascal Floating Point Issue

Benito van der Zander benito at benibela.de
Wed Aug 23 14:11:26 CEST 2017


> Btw, anyone know about a BCD math implementation for Free Pascal, like
> it used to be implemented in DR CBASIC? (those were the days... ;-) )


I have one here: http://benibela.de/sources_en.html#bigdecimalmath



Am 23.08.2017 um 02:16 schrieb Paul Nance:
> Turbo Pascal also had a BCD unit.
>
> On Aug 22, 2017 6:56 PM, "Ralf Quint" <freedos.la at gmail.com 
> <mailto:freedos.la at gmail.com>> wrote:
>
>     On 8/22/2017 1:39 PM, Mark Morgan Lloyd wrote:
>     > On 21/08/17 22:15, Ralf Quint wrote:
>     >> On 8/21/2017 3:02 PM, James Richters wrote:> I am having an issue
>     >> with a simple floating point application.  I am setting a
>     variable to
>     >> a specific value and immediately after I set it, it is not exactly
>     >> what I set it to.  Here's an example>> Draw_GX_Min:=999.999;>
>     >> Writeln(Draw_GX_Min:3:30);>> The writeln results in
>     >> 999.999000000000020000000000000000 >> Why is it not
>     >> 999.999000000000000000000000000000  where did 0.00000000000002 come
>     >> from?>Out of thin air... Well, kind of. Double floating point means
>     >> 16 digitsof precision, so when you force a 30 digit precision
>     output,
>     >> anythingpast 16 digits is random garbage, at best...
>     >
>     > And in any event, that's probably much more precision than the
>     GPU is
>     > using to generate the final image :-)
>     >
>     Well, older GPUs (at least NVidia, pretty sure similar restrictions
>     apply to AMD) use(d) only 32bit "single" floats, giving a 7 digit
>     precision, though newer ones can also handle 64bit doubles. But there
>     are quite a few differences in how certain FP operations are
>     handled on
>     those GPUs, which result in even doubles only having 14 (instead
>     of 16)
>     digits of precision at best. So while NVidia keeps mentioning IEEE754,
>     their GPUs are in practice not 100% compliant.
>
>     As I mentioned before, if someone needs to work a lot with floating
>     point arithmetic, it really helps to get yourself acquainted to
>     the way
>     those works and all the possible pitfalls.
>
>     Btw, anyone know about a BCD math implementation for Free Pascal, like
>     it used to be implemented in DR CBASIC? (those were the days... ;-) )
>
>     Ralf
>
>
>
>     ---
>     This email has been checked for viruses by Avast antivirus software.
>     https://www.avast.com/antivirus <https://www.avast.com/antivirus>
>
>     _______________________________________________
>     fpc-pascal maillist  - fpc-pascal at lists.freepascal.org
>     <mailto:fpc-pascal at lists.freepascal.org>
>     http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>     <http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal>
>
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170823/3aaa89ed/attachment.html>


More information about the fpc-pascal mailing list