Forum: Compiler & IDEs float double Atmel Studio 6


von Mitch55 (Gast)


Lesenswert?

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??

von Rolf M. (rmagnus)


Lesenswert?

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?

von Amateur (Gast)


Lesenswert?

Hast Du die zugehörigen Bibliotheken hinzugelinkt?

von Mitch55 (Gast)


Lesenswert?

Amateur schrieb:
> Hast Du die zugehörigen Bibliotheken hinzugelinkt?

glube nich welche denn?

von Ingo (Gast)


Lesenswert?


von Amateur (Gast)


Lesenswert?

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.

von Mitch55 (Gast)


Lesenswert?

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!!

von Amateur (Gast)


Lesenswert?

Auch beim 4.16 musst Du die Fließkommaarithmetik hinzulinken.

von Oliver (Gast)


Lesenswert?

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

von Kaj (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.