division von zahlen > 2200000000?
Hi,
da meines Wissens Integerwerte eine Obergrenze von ca. 2150000000 haben, in meinem Programm aber möglicherweise Variablen mit Werten darüber belegt werden, habe ich mir gedacht, dass ich für die betroffenen Variablen nicht den Typen Integer sondern Real verwende. Alles schön und gut, aber wenn ich bei dem Code
Delphi-Quellcode:
ankomme meint der aber "[Fehler] Unit1.pas(307): E2015 Operator ist auf diesen Operandentyp nicht anwendbar".
x := StrToFloat(eins) div xz;
Gibts da irgend eine möglichkeit um das Problem zu lösen?? Danke im Vorraus :wink: |
Re: division von zahlen > 2200000000?
Nicht div, sondern / verwenden, wenn dus gerundet haben willst evtl. mit trunc().
|
Re: division von zahlen > 2200000000?
div ist der Operator fuer die Ganzzahldivision - natuerlich nur auf Ganzzahlen anwendbar, was ein real (=Gleitkommazahl) nicht ist.
Loesung: Int64 ist doppeltso breit wie ein Integer - das sollte reichen ;) greetz Mike |
Re: division von zahlen > 2200000000?
Alternativ kkannst du vielleicht auch eine der zahlreich vorhandenen BigInt Units verwenden, was den Vorteil hätte dass du verglichen mit Float-Typen eine höhere Genauigkeit hast, und auch keine Obergrenze was die Werte angeht.
|
Re: division von zahlen > 2200000000?
Zitat:
Und danke für die schnellen Antworten! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:12 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