Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Power funktioniert nicht wie gedacht (https://www.delphipraxis.net/197254-power-funktioniert-nicht-wie-gedacht.html)

DieDolly 24. Jul 2018 20:32

Power funktioniert nicht wie gedacht
 
Ich möchte gerne Byte in MB, GB usw umrechnen. In einer Variablen steht drin, wie oft *1024 gerechnet werden muss. Da dachte ich kann ich doch gut Power nutzen

Delphi-Quellcode:
var I: Integer;

I := Power(1024, 3); // I := (1024 * 1024 * 1024)
Der Fehlter lautet Inkompatible Typen: 'Integer' und 'Extended'
Wie bekomme ich diesen Fehler weg? Oder gibt es eine andere Möglichkeit um die Schreibweise (1024 * 1024 * 1024) zu verkürzen.

DeddyH 24. Jul 2018 20:34

AW: Power funktioniert nicht wie gedacht
 
Wenn ich mich recht entsinne gibt es für ganze Zahlen Intpower.

DieDolly 24. Jul 2018 20:36

AW: Power funktioniert nicht wie gedacht
 
Dann bekomme ich
Inkompatible Typen: 'Integer' und 'Single'

MEissing 24. Jul 2018 20:37

AW: Power funktioniert nicht wie gedacht
 
Power erwartet als Eingangsparameter Single, Double oder Extended und liefert auch Single, Double oder Extended zurück

gammatester 24. Jul 2018 20:38

AW: Power funktioniert nicht wie gedacht
 
Zitat:

Zitat von DieDolly (Beitrag 1408521)
Ich möchte gerne Byte in MB, GB usw umrechnen. In einer Variablen steht drin, wie oft *1024 gerechnet werden muss. Da dachte ich kann ich doch gut Power nutzen

Delphi-Quellcode:
var I: Integer;

I := Power(1024, 3); // I := (1024 * 1024 * 1024)
Der Fehlter lautet Inkompatible Typen: 'Integer' und 'Extended'
Wie bekomme ich diesen Fehler weg? Oder gibt es eine andere Möglichkeit um die Schreibweise (1024 * 1024 * 1024) zu verkürzen.

Delphi-Quellcode:
var X: Double;

X := Power(Double(1024), 3); // X := (1024 * 1024 * 1024)

MEissing 24. Jul 2018 20:39

AW: Power funktioniert nicht wie gedacht
 
IntPower hat nix mit Integer zu tun :-)

DeddyH 24. Jul 2018 20:40

AW: Power funktioniert nicht wie gedacht
 
Hab ich auch gerade nachgelesen:mrgreen:

DieDolly 24. Jul 2018 20:42

AW: Power funktioniert nicht wie gedacht
 
Wenn ich Doubvle verwende bekomme ich an anderen Stellen Probleme wo ich Integer-Variablen verwende.

Was ist denn hiermit?
Delphi-Quellcode:
I := Round(Power(1024, 3));

gammatester 24. Jul 2018 20:45

AW: Power funktioniert nicht wie gedacht
 
Zitat:

Zitat von DieDolly (Beitrag 1408528)
Wenn ich Doubvle verwende bekomme ich an anderen Stellen Probleme wo ich Integer-Variablen verwende.

Was ist denn hiermit?
Delphi-Quellcode:
I := Round(Power(1024, 3));

Das Ergebnis ist zu groß für integer. Gibt 0 weil Overflow für 32-Bit-Integer.
Delphi-Quellcode:
var I: Int64;
I := Round(Power(1024, 3));
geht aber.

DieDolly 24. Jul 2018 20:49

AW: Power funktioniert nicht wie gedacht
 
Funktioniert sehr gut. Mit Int64 sollte ich eigentlich keine Grenzen sprengen können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.
Seite 1 von 5  1 23     Letzte » 

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