Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » C++ float runden

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.08.2012, 18:05 Uhr
chromex3



Hey

Ich habe im Internet nach einer Lösung zum runden von float zahlen gesucht da wurde mir gesagt ich soll die Funktion floor() aus <cmath> benutzen und die Funktion so verwenden floor(x+0.5) nur will ich gern wissen warum 0.5 ?

Danke im vorraus!

Wen jemand eine besser Lösung haben sollte wäre es nett wen er sie schreiben könnte!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.08.2012, 19:48 Uhr
0xdeadbeef
Gott
(Operator)


Weil 0.5 die halbe Entfernung zwischen zwei ganzen Zahlen ist. Das ist mit ein paar Beispielrechnungen ziemlich klar:

runden(2.3) = floor(2.3 + 0.5) = floor(2.8) = 2
runden(2.7) = floor(2.7 + 0.5) = floor(3.2) = 3
runden(2.5) = floor(2.5 + 0.5) = floor(3.0) = 3 <-- Grenzfall

Wenn aufgerundet werden muss, bringt + 0.5 die Zahl über die nächste ganze Zahl, sonst nicht.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: