Hallo, ich hab mal eine Frage, kann in eine Float einfach in eine Integer umwandeln in dem ich folgendes mache int a = 0x1500; float b = 0; b = a; oder bekomm ich da einen falschen Wert? Hintergrund ist, ich habe wie vlt der ein oder ander in meinem anderen Thread gelesen hat aus einem Array A/D Werte 2 bestimmte rausgesucht um daraus eine Gerade zu bestimmen. Diese Werte sind nun in Integer. Wenn ich nun über die 2 Punkt Geradengleichung die Gerade bestimmen will muss ich ja zwangsläufig eine Division durchführen. Wenn ich jetzt die 2 Integer Teile, geht mein dsPIC33 in Reset. ich schätze mal das es daran liegt, das das Ergebniss eine Kommazahl ist. Oder hab ich da nen Denkfehler
Jens Großmann wrote: > Wenn ich jetzt die 2 Integer Teile, geht mein dsPIC33 in Reset. Halte ich für unwahrscheinlich, es sei denn, Du hast einen anderen Bock drin (evtl. Division durch Null?)... > ich > schätze mal das es daran liegt, das das Ergebniss eine Kommazahl ist. > Oder hab ich da nen Denkfehler Das Ergebnis einer Integer-Division ist immer auch ein Integer! Und bevor Du anfängst, für eine popelige Geradengleichung mit Gleitkommageschichten zu wurschteln, schau Dir mal den Artikel zum Thema Festkommaarithmetik an.
>b = (float)a;
das geht ohne Fehler. Aber rechne doch zum Beispiel nicht mit Volt
sondern miliVolt dann hast du schon 3 Nachkommastellen.
wie der forredner sagte:
<schau Dir mal den Artikel zum Thema Festkommaarithmetik an.
Hy, danke erst mal für die schnelle Antwort. Dein Tip mit der Division durch Null war glaub die richtige Fährte. ich habe vor die division jetzt eine If-Schleife gemacht, die abfragt ob der Teiler ungleich Null und dann die Division durchführt und siehe da es geht. Ich denk mal der Fehler lag daran das die Division durchgeführt wurde bevor die Werte des ADC vorliegen, und da ich bei der Inizialisierung der Integer diese auf 0 gesetz habe ging das ganze schief
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.