Beispiel (Turbo Pascal):
PROGRAM real_eq;
{$N+}
VAR s : SINGLE; { einfache Genauigkeit }
d : DOUBLE; { doppelte Genauigkeit }
BEGIN
s := 1 / 3;
d := 1 / 3;
IF s = d THEN
Writeln(s, ' = ', d)
ELSE
Writeln(s, ' <> ', d);
Writeln(s = 1 / 3, ' ', d = 1 / 3);
END.
Testergebnis
3.33333343267441E-0001 <> 3.33333333333333E-0001 FALSE FALSEBemerkung:
Wird das Programm um die folgenden Deklarationsanweisungen ergänzt, so ist es auch unter Gnu Pascal lauffähig:
TYPE SINGLE = __short__ REAL; { einfache Genauigkeit }
DOUBLE = REAL; { doppelte Genauigkeit }
Testergebnisse:
3.3333334e-01 <> 3.3333333e-01 False TrueBemerkung:
Wird im obigen Beispiel 1 / 3 durch 1 / 2 ersetzt, so ergibt sich unter Turbo Pascal folgendes Testergebnis:
5.00000000000000E-0001 = 5.00000000000000E-0001 TRUE TRUEDa 1 / 2 als Zweierpotenz 2-1 rechnerintern exakt darstellbar ist, gelingt hier der Test auf Gleichheit.