Hallo zumsammen, ich bin vom AVR Studio 4.16 zum Atmel Studio 6 gewechselt. Und komme überhaubt nicht damit klar, habe irgendwie das Gefühl es macht nicht das was es soll. Mein Problem ist, das ich nicht mit float bzw. double rechnen kann. Bsp: wenn ich eine Variable als double in einer Funktion anlege werden dafür 4 Bytes zu verfügung getellt soweit so gut. Das merkwürdige an der sache ist das diese 4 Bytes anschließend nicht als Double sondern als int behandelt werden, was das rechnen damit ja unmöglich macht. double wert = 5.25; /// dann sehen die 4 Bytes so aus:0x40a80000 /// stimmt soweit. fahre ich mit der maus über die variable dann wird mir aber nicht 5.25 angezeigt sondern der wert der 4 Bytes als int Also: 1084751872 und auch genau mit diesem wert wird gerechnet!! Muss ich noch etwas vorher einstellen damit ich mit Gleitkomma arbeiten kann??
Mitch55 schrieb: > wenn ich eine Variable als double in einer Funktion anlege werden dafür > 4 Bytes zu verfügung getellt soweit so gut. Mehr oder weniger... > Das merkwürdige an der sache ist das diese 4 Bytes anschließend nicht als > Double sondern als int behandelt werden, was das rechnen damit ja > unmöglich macht. > > double wert = 5.25; /// dann sehen die 4 Bytes so aus:0x40a80000 > /// stimmt soweit. > fahre ich mit der maus über die variable dann wird mir aber nicht 5.25 > angezeigt sondern der wert der 4 Bytes als int > Also: 1084751872 Also zeigt dein Debugger (oder was immer du da hast, bei dem du mit der "Maus über die Variable" fährst) Mist an. > und auch genau mit diesem wert wird gerechnet!! Woran erkennst du das? Bei welcher Berechnung? Du hast hier nichts weiter von deinem Programm gezeigt als den Teil, der deiner Aussage nach funktioniert. Wie soll dir hier jemand sagen können, warum der nicht gezeigte Teil nicht funktioniert?
In ganz beträchtlicher Teil der Fließkommaarithmetik ist in eine Bibliothek ausgelagert. Diese wird default nicht zu den Projekten hinzugelinkt - wegen des dann nötigen Platzes. Schau mal bei den Linkeroptionen nach.
Also leute vielen dank für eure Hilfe. So wie es aus sieht rechnet er schon richtig aber ich kann aus irgendwelchen gründen dei werte nicht so zuweisen fl= 2.5; sondern nur so fl = (double)2.5; das gleich gilt für bedingungen nicht if (fl > 2.5) sondern if (fl > (double)2.5) ausserdem suche ich jetzt schon seit einer studen den scheiß iO view gehe jetzt wieder zurück zum 4.16 da funktioniert alles!!
Mitch55 schrieb: > Das merkwürdige an der sache > ist das diese 4 Bytes anschließend nicht als Double sondern als int > behandelt werden, was das rechnen damit ja unmöglich macht. Das ist nur ein Problem des Debuggers. Das Programm macht das schon richtig. Oliver
Mitch55 schrieb: > if (fl > 2.5) Hast du ein glueck das x.5 und x.0 in einem Rechner genau dargestellt werden kann... Mitch55 schrieb: > ausserdem suche ich jetzt schon seit einer studen den scheiß iO view Oben, relativ mittig, untere leiste... siehe bild... Mitch55 schrieb: > gehe jetzt wieder zurück zum 4.16 da funktioniert alles!! Das Problem ist nicht die IDE sondern nutzer die immer wieder damit anfangen: "Frueher war alles besser, ich hab kein bock mich in was neues einzuarbeiten, alles was neu ist, ist scheisse..." getreu dem motto: Was der Bauer nicht kennt, das frisst er nicht... Das gleiche bei den jammernden beamten in muenchen und dem thema LiMux...
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.