[fpc-pascal] Order of Precedence: FPC/Delphi vs Java
mailinglists at geldenhuys.co.uk
mailinglists at geldenhuys.co.uk
Wed Oct 3 11:28:06 CEST 2018
Hi Florian,
Thanks for your reply. Initially I had all the data types as Double in
the Object Pascal example. I then thought that maybe there is some auto
data-type conversion, and tried storing the result in a Extended type
instead. It made no difference.
From your example, the only time there is a difference is when the
-Cfsse2 is specified. What exactly does that do, because with or without
that, the results vary.
I'm running 64-bit Windows 10 here, but using FPC 3.0.4 32-bit compiler.
In Delphi I was using XE3 32-bit compiler as well.
See here... I changed all the data types to Double before I did this
test:
graeme.geldenhuys at UKCM-L500737 C:\devel\tests\OperatorPrecedence
> fpc -Criot -Cfsse3 TestOperatorPrecedence.pas
Free Pascal Compiler version 3.0.2 [2017/02/13] for i386
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling TestOperatorPrecedence.pas
TestOperatorPrecedence.pas(10,3) Note: Local variable "a" is assigned
but never used
Linking TestOperatorPrecedence.exe
36 lines compiled, 0.1 sec, 35312 bytes code, 2436 bytes data
1 note(s) issued
graeme.geldenhuys at UKCM-L500737 C:\devel\tests\OperatorPrecedence
> TestOperatorPrecedence.exe
5.1009900000000001E+004
5.1009900000000001E+004
5.1009900000000001E+004
---
0.0000000000000000E+000
0.0000000000000000E+000
0.0000000000000000E+000
0.0000000000000000E+000
0.0000000000000000E+000
Perfect, the result I expected. Now the same code, but compiled without
-Cfsse2 and the results change.
graeme.geldenhuys at UKCM-L500737 C:\devel\tests\OperatorPrecedence
> fpc -Criot TestOperatorPrecedence.pas
Free Pascal Compiler version 3.0.2 [2017/02/13] for i386
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling TestOperatorPrecedence.pas
TestOperatorPrecedence.pas(10,3) Note: Local variable "a" is assigned
but never used
Linking TestOperatorPrecedence.exe
36 lines compiled, 0.1 sec, 35232 bytes code, 2436 bytes data
1 note(s) issued
graeme.geldenhuys at UKCM-L500737 C:\devel\tests\OperatorPrecedence
> TestOperatorPrecedence.exe
5.1009900000000001E+004
5.1009900000000001E+004
5.1009900000000001E+004
---
-3.5527136788005009E-015
-3.5527136788005009E-015
-3.5527136788005009E-015
0.0000000000000000E+000
0.0000000000000000E+000
Sorry, but this makes no sense to me.
Regards,
Graeme
On 2018-10-03 10:16, Florian Klämpfl wrote:
> Am 03.10.2018 um 10:40 schrieb mailinglists at geldenhuys.co.uk:
>> I have this simple little test. My expected answer for all the
>> calculations are 0 (zero), but both FPC and Delphi give
>> different results. Java is the only one that seems consistent
>> regarding the results.
>
> Compile/run on the same architecture, use the same data types (and not
> extended for Object Pascal and double for Java).
More information about the fpc-pascal
mailing list