kannst du nicht int bla=(int)deindouble; machen?
Mein eigentliches Problem ist es eine Exponentialfunktion in der Schleife zu rechnen. Leider kann die aber nur mit double arbeiten. Als Ergebnis brauche ich aber eine Ganzzahl. Deshalb müsste ich jetzt das Double Ergebnis wieder in Integer umwandeln, wofür es auch keine Standardfunktion gibt. Das kann doch nicht die Lösung sein.
Hat vielleicht schon jemand ähnliche Erfahrungen gemacht?
kannst du nicht int bla=(int)deindouble; machen?
Es gibt in JEDER Programmiersprache Funktionen um Zahlen
zwischen den verschiedenen Formaten umzurechnen ...
MfG
Ruedi
@Ruediw: Darf ich den Sinn deiner Bemerkung hinterfragen? Natürlich kann man in jeder Programmiersprache sog. "casts" durchführen.
PasstSchos Vorschlag müsste theoretisch funktionieren.
Ja, aber es gibt keine casts fuer float nach integerzahlen, da da dies etwas komplizierter ist, wegen der internen abspeicherung von exponent und mantisse
Ergänzung: Du hast recht für folgendes Szenario
int i = 0;
double x = 41.27346;
i = (int) x;
das funktioniert!
Aber: i = (int) exp(x);
geht nicht!
Sobald ich irgendwo im Code eine exp-Funktion aus der math library verwenden kann ich den Code nicht mehr compilieren und eine brauchbare Fehlermeldung kommt auch nicht. Nur dass das Objectfile nicht vorhanden ist.
Evtl. muss man einen speziellen Schalter umlegen oder noch etwas einbinden?
Ich benutzte uebrigends das AVR-Studio mit AVR-GCC Plugin
Poste doch mal Dein makefile
Links du auch die libm dazu? mit -lm
::Edit::
Nochwas: Wozu brauchst du eigentlich exp? Vielleicht gaht das viel billiger mit anderen Funktionen?
Disclaimer: none. Sue me.
Gerne wuerde ich auch etwas einfacheres nehmen, aber was?
Wozu brauchst du denn exp?
Disclaimer: none. Sue me.
Lesezeichen