Autor Beitrag
Cyberbob
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Mi 09.10.02 18:38 
HI ihr,

hab gerade einen totalen Blackout. Ich lese aus einer Ini Datei zahlen aus und speichere diese, wie das so üblich ist, als variablen ab.( integerwert)
und nun will ich mit ihnen rechnen. Es sieht so aus:

var1:=meinePunkte/gesammte punkte

das geht aber cniht und ich bekomme einen Fehler -Incompatible types integer and Extended.

Was mache ich falsch?

Cyberb :P b
SMI
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106

Win95-2003 / Debian / Suse
D1/D3/D6/D7
BeitragVerfasst: Mi 09.10.02 19:00 
Aus der Fehlermeldung schließe ich, dass Var1 als Integer(GanzeZahl), und entweder meinePunkte und/oder gesammelte punkte ein Extended(Kommazahl) ist.

Wenn var1 ein Integer Wert, ist musst du mit div Teilen, oder mit / Teilen und Runden alternativ hast du die Bedeutung von Integer und Extended vertauscht, wenn Var1 eine Kommalzahl speichern soll.

SMI

_________________
Wenn es im Jahre 1879 schon Computer gegeben hätte, würden diese vorausgesagt haben, daß man infolge der Zunahme von Pferdewagen im Jahre 1979 im Pferdemist ersticken würde.
(John C. Edwards, brit. Zukunftsforscher)
Cyberbob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Mi 09.10.02 19:13 
hi ihr,

hmm, also var1 soll ja eine Kommazahl werden, wie muss ich das dann richtig machen? Einen Extendtypen kenne ich nciht...


Cyberb :P b
SMI
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106

Win95-2003 / Debian / Suse
D1/D3/D6/D7
BeitragVerfasst: Mi 09.10.02 19:26 
Folgende Werte sind Fließkommawerte:

Real 2.9 x 10^-39 .. 1.7 x 10^38 11-12 6
Single 1.5 x 10^-45 .. 3.4 x 10^38 7-8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8
Extended 3.4 x 10^-4932 .. 1.1 x 10^4932 19-20 10
Comp -2^63+1 .. 2^63 -1 19-20 8
Currency -922337203685477.5808.. 922337203685477.5807 19-20 8


Folgende sind Ganzezahlen

Smallint -32768..32767 16 Bit einschließlich Vorzeichen
Longint -2147483648..2147483647 32 Bit einschließlich Vorzeichen
Byte 0..255 8 Bit, besitzt kein Vorzeichen
Word 0..65535 16 Bit, besitzt kein Vorzeichen
Integer -2147483648..2147483647 32 Bit einschließlich Vorzeichen
Cardinal 0..2147483647 32 Bit, besitzt kein Vorzeichen


Wenn das Ergebnis var1 eine Fließkommazahl sein soll must du so rechnen
var1 muss eine Fließkommazahl sein, daher auch die Compiler Meldung, dass eine Integer(Ganzzahl) inkompatibel zu eime extended=Fließkommazahl, weil er nicht weiß, was mit den Kommas Stellen zu tun ist.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
VAR
  var1 :extended;
  meinepunkte: integer;
  gesammtepunkte: integer;
BEGIN
  var1:=  meinepunkte / gesammtepunkte;
END;

Wenn das Ergebnis eine Genzezahl sein soll rechnest du so
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
VAR
  var1 :integer;
  meinepunkte:extended;
  gesammtepunkte: extended;
BEGIN
  var1:=  ROUND(meinepunkte / gesammtepunkte);
END;

Wenn alle Werte Genzsahlen sind rechnet man so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
VAR
  var1 :integer;
  meinepunkte: integer;
  gesammtepunkte: integer;
BEGIN
  var1:=  meinepunkte div gesammtepunkte;
END;


SMI

(10.10.02 09:09 Tino) Code-Tags hinzugefügt.

_________________
Wenn es im Jahre 1879 schon Computer gegeben hätte, würden diese vorausgesagt haben, daß man infolge der Zunahme von Pferdewagen im Jahre 1979 im Pferdemist ersticken würde.
(John C. Edwards, brit. Zukunftsforscher)
Cyberbob Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38



BeitragVerfasst: Mi 09.10.02 20:12 
Ja danke super, jetzt rechnet er zumindest schon mal, aber kann ich auch bestimmen, das er nur 2 Stellen hinter dem Komma anzeigt?

Ich dachte an Extended[4] aber das klappt irgendiwe nicht.

Gibt es da ne Lösung für?


Cyberb 8) b
SMI
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106

Win95-2003 / Debian / Suse
D1/D3/D6/D7
BeitragVerfasst: Mi 09.10.02 20:24 
ausblenden Quelltext
1:
2:
3:
4:
5:
Var test:extended;
begin
  test:=1/3;
  showmessage(FloatToStrF(test,ffFixed, 18, 2));
end;


SMI

(10.10.02 09:10 Tino) Code-Tags hinzugefügt.

_________________
Wenn es im Jahre 1879 schon Computer gegeben hätte, würden diese vorausgesagt haben, daß man infolge der Zunahme von Pferdewagen im Jahre 1979 im Pferdemist ersticken würde.
(John C. Edwards, brit. Zukunftsforscher)