[fpc-pascal] Floating point question

Jonas Maebe jonas at freepascal.org
Mon Feb 12 19:08:29 CET 2024


On 12/02/2024 10:55, Michael Van Canneyt via fpc-pascal wrote:
> On Mon, 12 Feb 2024, Thomas Kurz via fpc-pascal wrote:
> 
>> I wouldn't say so. Or at least, not generally. Why can't the compiler 
>> do what the programer intends to do:
>>
>> var
>>  s: single;
>>  d: double;
>>  e: extended;
>>
>> begin
>>  s := 8427.0 + 33.0 / 1440.0; // treat all constants all "single"
>>  d := 8427.0 + 33.0 / 1440.0; // treat all constants all "double"
>>  e := 8427.0 + 33.0 / 1440.0; // treat all constants all "extended"
>> end.
> 
> You cannot do this in Pascal. The evaluation of the expression on the 
> right of := does not
> know (and should not know) what the type is of the expression on the left.

It's even theoretically impossible to do in case the result is passed to 
a function or intrinsic that is overloaded with single/double/extended 
parameters.


Jonas


More information about the fpc-pascal mailing list