AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Division

Ein Thema von daredd · begonnen am 6. Nov 2007 · letzter Beitrag vom 6. Nov 2007
Antwort Antwort
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#1

Division

  Alt 6. Nov 2007, 11:31
Kann mir einer sagen was ich hier bei sowas einfachem falsch mache?

Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
var
s, sc : Int64;
begin
     //Button1.Visible := false;
     //InitMetaEx;
     sc := 1024;
     s := DiskFree(0);
     s := (s / sc); // hier kommt die Fehlermeldung
     Label16.Caption := Format('%d', [s]);
end;
Ich bekomme beim Compelieren eine Fehlermeldung:

Incompatible types: Int64 and Extend.

Ich will eigentlich nur die große bytezahl als Megabytezahl bzw. Gb anzeigen lassen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: Division

  Alt 6. Nov 2007, 11:34
Der Operator / ist für Fließkommazahlen. Für ganze Zahlen musst Du div verwenden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#3

Re: Division

  Alt 6. Nov 2007, 11:34
Die Meldung sagt doch schon alles aus.
Aus der Division kommt (logischerweise) eine Gleitkommazahl raus (Extended).
Du willst diese Zahl, die Nachkommastellen speichern kann, aber einem Integer - also einem Ganzzahligen Wert zuweisen. Das geht nicht. Wie denn auch?

Du musst also entweder die linke Seite in einen Fließkommawert umwandeln, oder aber das Ergebnis der Division erst runden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
daredd

Registriert seit: 2. Apr 2006
433 Beiträge
 
#4

Re: Division

  Alt 6. Nov 2007, 11:35
Ja Mensch wie dumm bin ich eigentlich?
Oh man stimmt. Also ich habe gestern zu lange gearbeitet.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Division

  Alt 6. Nov 2007, 11:41
Das hier wäre auch möglich:

Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
var
s, sc : Int64;
begin
     //Button1.Visible := false;
     //InitMetaEx;
     sc := 1024;
     s := DiskFree(0);
     s := Round(s / sc); // Beachte das Round
     Label16.Caption := Format('%d', [s]);
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

Re: Division

  Alt 6. Nov 2007, 11:52
Oder gleich so:
Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
var
s, sc : Int64;
begin
     //Button1.Visible := false;
     //InitMetaEx;
     s := DiskFree(0);
     Label16.Caption := Format('%.0f', [s/1024]);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#7

Re: Division

  Alt 6. Nov 2007, 11:55
Also mal ehrlich:
Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
begin
   Label16.Caption := Format('%.0f', [DiskFree(0)/1024]);
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#8

Re: Division

  Alt 6. Nov 2007, 12:04
Das wäre mein nächster Schritt gewesen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#9

Re: Division

  Alt 6. Nov 2007, 12:07
Nächste Möglichkeit:
Delphi-Quellcode:
procedure TMainform.Button1Click(Sender: TObject);
begin
   Label16.Caption := IntToStr(DiskFree(0) shr 10);
end;


greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#10

Re: Division

  Alt 6. Nov 2007, 12:17
Okay, hast gewonnen
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz