Hi, wie bekomme ich den Vorkommaanteil und den Nachkommaanteil eines Float Wertes? Ich habe keine Funktion wie "Round" gefunden. Nun wollte ich mir diese eben schreiben... Wenn Nachkomma >0,5 dann Vorkomma + 1 Aus 12,5 soll 13,0 werden, aus 12,4 dann 12,0 Hat jemand eine Idee? Gruß Tobi...
int vorkammazahl; vorkommazahl=floatwert+0.5; Das sollte genau das gewünschte Ergebnis liefern.
Stimmt, die negative Zahlen übersehe ich immer. int vorkammazahl; if (floatwert>=0) vorkommazahl=floatwert+0.5; else vorkommazahl=floatwert-0.5;
In C99 gibt es folgende 21 Rundungsfunktionen: {{,l,ll}{rint,round},nearbyint}{,f,l} Sie unterscheiden sich in den Datentypen des Arguments und des Ergebnisses, der Art und Weise, wie ein Nachkommaanteil von exakt 0,5 gerundet wird und ob ggf. eine inexact Exception ausgelöst wird.
es gibt auch noch eine Funktion floor(); die schneidet einfach die nachkommastellen ab zumindest in C++... gruß
> die schneidet einfach die nachkommastellen ab > zumindest in C++... Fast. floor() rundet stets "abwärts". Für negative Zahlen ist das nicht mehr mit dem einfachen Abschneiden des Nachkommateils identisch.
Und als Gegenstück zu floor() gibts dann noch ceil(). Da wird immer "aufwärts" gerundet.
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.