Delphi-Quellcode:
....
'
0'..'
9':
begin
if decimal>0
then begin
number := number + Iord(c) - 48)/decimal;
decimal := decimal*10;
else
number := 10 * number + ord(c) - 48;
code := isNum;
end;
'
.':
if decimal>0
then
raise Exception.Create('
invalid decimal')
else
decimal := 10;
'
(':
begin
decimal := 0;
number := _Eval(term, i);
code := isNum;
end;
'
':
begin
decimal := 0;
continue;
end;
'
+', '
-', '
*', '
/', '
)':
begin
decimal := 0;
....
dann noch decimal deklarieren und initialisieren sowie die Zahlentypen von INTEGER nach DOUBLE ändern.
Ungetestet, könnte aber klappen.