001
20.10.2004, 19:50 Uhr
Hans
Library Walker (Operator)
|
Zitat von Frank71: |
Hallo,
ich habe folgendes:
<schnipp> a = HardwareControl->PixelpLine; // 5184 b = PaintBox1->Width; // 689 m_stepSize = a/b; <schnapp>
m_stepSize bleibt hier ganzzahlig , obowhl a/b dies nicht ist und m_stepSize auf als double deklariert wurde. Zudem läßt sich die Zeile kein breakpoint zu - sie wird irgendwie wegopimiert
|
Was kriegst Du denn für ein Ergebniss geliefert? - Der Windoof-Taschenrechner liefert bei mir 7.523usw. Möglicherweise führt er die Rechnung auch ganzzahlg durch, und castet erst das Ergebniss nach double. Versuch es mal mit einem erzwungenen cast, etwa so: m_stepSize = (double)a/(double)b; Damit wird der compiler veranlasst, die Zahlen erst in double umzuwandeln, und danach erst die Rechnung zu machen.
Zitat: |
Dieser Fehler setzt sich entsprechend in einer anderen Funktion fort. Wie kriege ich Borland dazu, diese Konvertierung bzw. abrunden sein zu lassen (die Compileroption - CodeOptimierung habe ich bereits deaktiviert)
|
Welche denn? - Diese hier?
Code: |
-Od Disable all optimizations
|
Vielleicht hilft es ja auch, Wenn Du mit diesen Optionen etwas herum bastelst, bzw. Experimentierst.
Code: |
Compiler options | Floating point
-f- No floating point -f Emulate floating point -ff Fast floating point -fp Correct Pentium fdiv flaw
|
Das sind die Optionen, wie sie dem compiler auf der Kommandozeile übergeben werden können; - wo man die in der IDE einstellt, weis ich gerad nicht.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 20.10.2004 um 19:53 Uhr von Hans editiert. |