Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi int64 * Dezimalzahl - wie geht das? (https://www.delphipraxis.net/28299-int64-%2A-dezimalzahl-wie-geht-das.html)

Tubos 22. Aug 2004 22:19


int64 * Dezimalzahl - wie geht das?
 
Hallo;

gibt es eine Möglichkeit, eine int64-Variable mit einer Dezimalzahl zu multiplizieren?

Zum Beispiel so:
[delphi]var a,b: int64;
begin
a:=...
b:=a * 0.4
...
end;[delphi]
Der Compiler sagt:
"Inkompatible Typen: int64 und extended".
Und a div 2.5 geht auch nicht weil div nur mit Ganzzahlen funktioniert.

Wie kann ich das sonst machen?d

SirThornberry 22. Aug 2004 22:22

Re: int64 * Dezimalzahl - wie geht das?
 
du könntest runden bzw. abschneiden.
Delphi-Quellcode:
b:=round(a * 0.4 );//runden
b:=trunc(a * 0.4 );//abschneiden

Luckie 22. Aug 2004 22:24

Re: int64 * Dezimalzahl - wie geht das?
 
b muss vom Typ Delphi-Referenz durchsuchenExtended sein, weil Delphi automatisch den Ergebnisdatentyp erweitert.

dizzy 22. Aug 2004 22:25

Re: int64 * Dezimalzahl - wie geht das?
 
Delphi-Referenz durchsuchenround, Delphi-Referenz durchsuchentrunc, oder b vom Typ Extended ;)


\\wohaa, viel zu spät, aber dafür die beiden obigen posts zusammengefasst :roll:

Tubos 22. Aug 2004 22:34

Re: int64 * Dezimalzahl - wie geht das?
 
Zitat:

oder b vom Typ Extended
Das geht nicht, weil der Zahlenbereich von Extended nicht so groß ist wie der von int64.

Geht aber mit trunc.
Danke!

dizzy 22. Aug 2004 22:43

Re: int64 * Dezimalzahl - wie geht das?
 
\\edit: MIST Ich wollte diesen Beitrag zitieren, statt dessen hab ich ihn weg-editiert... Sorry! :oops: :?

Tubos 22. Aug 2004 23:12

Re: int64 * Dezimalzahl - wie geht das?
 
Zitat:

Aber ist Extended nicht 80 Bit breit, und Int64 nur 64 Bit?
wirklich?
ich dachte, beide sind 64 bit...

ja, die delphi-hilfe sagt auch: 10 byte, also 80 bit.

Na dann kann ich tatsächlich Extended verwenden.

dizzy 22. Aug 2004 23:44

Re: int64 * Dezimalzahl - wie geht das?
 
Double ist auch 64 Bit breit.

Chewie 23. Aug 2004 10:42

Re: int64 * Dezimalzahl - wie geht das?
 
Aber man sollte auch beachten, dass Ganzzahl- und Fließkommazahlen komplett anders aufgebaut sind ;)

dizzy 23. Aug 2004 10:45

Re: int64 * Dezimalzahl - wie geht das?
 
Zitat:

Zitat von Chewie
Aber man sollte auch beachten, dass Ganzzahl- und Fließkommazahlen komplett anders aufgebaut sind ;)

Deswegen ja mein Hinweis oben auf den möglichen Verlust der Genauigkeit ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.
Seite 1 von 2  1 2      

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