Delphi: Integer und Extended Inkompatible Typen?


20.06.2020, 03:39

Wenn ich teile, darf ich keine Int verwenden. Da int nur für ganze Zahlen sind. Also habe ich Float/Real benutzt und jetzt klappt alles :D

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Der /-Operator gibt bei Gebrauch eine Fließkommazahl zurück.

Entweder du speicherst das Ergebnis also in einem anderen Datentyp (wie real):

var
  dividend, divisor: integer;
  quotient: real;
begin
  quotient := dividend / divisor;
end;

oder du wandelst das Ergebnis via Typecast/Rundung wieder zurück in einen Integer:

var
  dividend, divisor: integer;
  quotient: integer;
begin
  quotient := Round(dividend / divisor);
end;

oder du verwendest die euklydische Division (Division mit Rest):

var
  dividend, divisor: integer;
  quotient: integer;
begin
  quotient := dividend div divisor;
end;

In letzterem Fall würde bspw. 13 div 2 das Ergebnis 6 ergeben (6 Rest 1).

Das Ergebnis einer Division ist in den seltensten Fällen ganzzahlig und somit kein Integraltyp.

igern 
Fragesteller
 20.06.2020, 03:17

OMG Danke bin ich dumm xD

0