www.mikrocontroller.net

Forum: Compiler & IDEs Fkt round wird nicht gefunden, floor schon


Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche *.h Datei muss ich einbinden, dammit ich mit CodeVisionAVR die 
Round-Funktion nutzen kann?

floor(...); wird gefunden und round(...); nicht!

Autor: Andreas P. (madmax2006)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ist in "tgmath.h" und in "math.h" vorhanden.

Gruß

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erweiterungen nicht eingeschaltet? In C89 gab es diese Funktion noch 
nicht.

Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
math.h hab ich eingebunden, aber die Funktion round() wird trotzdem 
nicht gefunden
tgmath.h hab ich nicht

Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich die Funktion von Hand programmieren (float-Wert runden auf 
ganze Zahl)?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So wie du es von Hand auch machen würdest.
Nachschauen was hinter dem Komma kommt und dann entsprechend entscheiden 
ob auf oder abrunden.

Autor: Andreas P. (madmax2006)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die Header-Datei tgmath.h ist im AVR Studio 4.16 vorhanden kannst Du 
nach einer Registrierung kostenlos downladen:

http://www.atmel.com/forms/software_download.asp?f...

Habe die tgmath.h mal angehängt, weiß aber nicht ob sie einzubinden 
geht.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anfänger schrien:
>Welche *.h Datei muss ich einbinden, dammit ich mit CodeVisionAVR die
>Round-Funktion nutzen kann?

Andreas P. (madmax2006) schrieb:
>Die Header-Datei tgmath.h ist im AVR Studio 4.16 vorhanden...

Frage: was passt hier nicht zusammen?

Zusatzfrage: Was ist der Unterschied zwischen Headerdatei und libray, 
und wie spielen die beiden zusammen?

Zusatzfrage 2: Was steht zum Thema round() in der CodeVisionAVR-Doku?

Oliver

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
rofl

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anfänger schrieb:
> Wie kann ich die Funktion von Hand programmieren (float-Wert runden auf
> ganze Zahl)?

Gast schrieb:
> So wie du es von Hand auch machen würdest.
> Nachschauen was hinter dem Komma kommt und dann entsprechend entscheiden
> ob auf oder abrunden.

Wozu so kompliziert.

float a = 0.71243098;
float b = 5.24309823;

int a_gerundet = (int)(a+0.5); /* = 1 */
int b_gerundet = (int)(b+0.5); /* = 5 */

Gelingt zummindest meistens ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>
> Gelingt zummindest meistens ;-)

@TO

Probiers aber auch mit

c = -1.2;

:-)

Autor: Mark Brandis (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> Probiers aber auch mit
>
> c = -1.2;
>
> :-)

Jaha gut... bei negativen Zahlen dann halt minus 0.5 :-)

#define ROUND(f) ( f > 0.0 ? ((int)(f+0.5)) : ((int)(f-0.5)) )

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verrate ihm doch nicht alles :-)
Das Verstehen warum hier bei negative Zahlen eine andere Vorgehensweise 
notwendig ist, ist das zentrale Verständnis dessen, was bei einer 
Zuweisung double nach int wirklich passiert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.