Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   EIntOverflow bei LongWord, nicht aber bei Word (https://www.delphipraxis.net/196521-eintoverflow-bei-longword-nicht-aber-bei-word.html)

gammatester 29. Mai 2018 17:12

AW: EIntOverflow bei LongWord, nicht aber bei Word
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1403372)
Ich sehe in Delphi keine Äquivalent zu C's
Delphi-Quellcode:
(double)(a - b)
außer vielleicht
Delphi-Quellcode:
a*1.0 - b
. Gibt es etwas besseres außer vielleicht einer zusätzlichen Variable der man dann
Delphi-Quellcode:
a
zuweist?

Delphi-Quellcode:
int(a) - int(b)
oder
Delphi-Quellcode:
int(a-b)
sollte auch funktionieren.

himitsu 29. Mai 2018 17:15

AW: EIntOverflow bei LongWord, nicht aber bei Word
 
Delphi-Quellcode:
CCast = PascalCast

(double)(a - b) = Double(a - b)

(double)a - b = Double(a) - b

(double)a - (double)b = Double(a) - Double(b)

(double)((integer)a - (integer)b) = Double(Integer(a) - Integer(b))

Der schöne Günther 29. Mai 2018 17:45

AW: EIntOverflow bei LongWord, nicht aber bei Word
 
Dann ist mein Delphi wohl kaputt, denn das kompiliert alles nicht. :cry:

Delphi-Quellcode:
procedure p();
var
   a:   LongWord;
   b:   LongWord;
   asFloat: Double;
begin
   a := 0;
   b := 1;
   asFloat := Double(a-b); // E2089 "Ungültige Typumwandlung"
end;

himitsu 29. Mai 2018 18:00

AW: EIntOverflow bei LongWord, nicht aber bei Word
 
Sehr eigenartig, der implizite Cast
Delphi-Quellcode:
asFloat := a-b;
funktioniert, aber der Explizite nicht. :gruebel:

Ich mache sowas selten/nie, drum bin ich jetzt auch überrascht, dass nichtmal ein
Delphi-Quellcode:
asFloat := Double(a);
geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 Uhr.
Seite 4 von 4   « Erste     234   

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