![]() |
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 |
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 |
Re: int64 * Dezimalzahl - wie geht das?
b muss vom Typ
![]() |
Re: int64 * Dezimalzahl - wie geht das?
|
Re: int64 * Dezimalzahl - wie geht das?
Zitat:
Geht aber mit trunc. Danke! |
Re: int64 * Dezimalzahl - wie geht das?
\\edit: MIST Ich wollte diesen Beitrag zitieren, statt dessen hab ich ihn weg-editiert... Sorry! :oops: :?
|
Re: int64 * Dezimalzahl - wie geht das?
Zitat:
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. |
Re: int64 * Dezimalzahl - wie geht das?
Double ist auch 64 Bit breit.
|
Re: int64 * Dezimalzahl - wie geht das?
Aber man sollte auch beachten, dass Ganzzahl- und Fließkommazahlen komplett anders aufgebaut sind ;)
|
Re: int64 * Dezimalzahl - wie geht das?
Zitat:
|
Re: int64 * Dezimalzahl - wie geht das?
bei tausenden von stellen dürften 8 geltende ziffern schon eine _SEHR_ große ungenauigkeit machen. (zwar nicht vom relativen fehler her, aber wenn man immer eins hochzählen will, könnte es kritisch werden)
|
Re: int64 * Dezimalzahl - wie geht das?
Das versuchte ich durch meine etwas ketzerische Aussage:
Zitat:
ja deutlich zu machen. Das taugt dann eher für Abschätzungen als für Hochpräzisionsalgebra :zwinker:. Aber je nach dem wie groß die Werte wirklich werden, kann die Genauigkeit ja trotzdem ausreichen. Mehrere tausend, oder auch schon hundert Stellen sind ja eher selten... mann müsste schon "EINE_SEHR_GROSSE_ZAHL * Max(Int64);" rechnen um da überhaupt dran zu kommen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz