Float runden
-
hi,
hab was komisches entdeckt, das mich sehr verwirrt.
ich hab nen string in der Form 2423423.34
dann konvertier ich des ganze in nen Float mit
atof(string)boom dann hab ich sowas wie 2423423.3400000598762
des müsste ich jetzt auf 2 Stellen runden nur wie?
Und warum find ich eigentlich grundsätzlich nix, wenn ich die forumsuche benutzen will?
Greez Osiris
-
Hallo,
versuche es mal damit
static double RoundDouble ( double value, int stellen ) { double faktor = ( stellen == 0 ? 1.00 : pow ( 10, stellen )), retval = 0.00, x; x = modf ( value * faktor, &retval ); if ( x >= 0.5 ) retval += 1.0; if ( faktor != 0.00 ) retval /= faktor; return retval; }
-
falls du nicht runden willst, sondern nur abschneiden, dann kannst du auch folgendes verwenden:
yourFloat=((int)(yourFloat*100.0))/100.0;
Allerdings wird das vermutlich wieder zum selben Ergebnis führen, wie die Methode meines Vorposters auch. Liegt an der Art wie floats die Daten speichert.
-
Ich hab das mal ausprobiert, ich habe dabei keine mystischen Nachkommastellen ganz hinten bekommen. Hast Du einen CString verwendet?