wer von euch kann mir sagen wie ich in C++ (MFC) runden kann. Das Math oktjeck zeigt keine reaktion und der Compiler nur "error". Bitte helft mir mal auf die sprünge.
ein cast nach int schneidet dir die kommastellen weg. wenn du kaufmännisch runden willst erst so lange mit 10 mutliplizieren bis du an der stelle bist die du wegschneiden willst, dann 0,5 drauf packen und nach int casten. danach entsprechend oft (wie vormals mit 10 malgenommen) durch 10 teilen -- ...fleißig wie zwei Weißbrote
Ich bin zwar Fachinformatiker, aber könnte ich das mal auf verständlichem deutsch haben, oder auch noch besser in einem Mathematischem ausdruck!?? Danke!
das die fachinformatiker auch immer so schwer von begriff sind SCNR bist nicht der einzige der probleme mit meinen erklärungen hat ok mal ungetestet ins forum gehackt hoffe ist jetzt kein denkfehler drin
C++:
double zahl=4711.849; //die zu runde zahl //so mal angenommen wir wollen kaufmänsich die 2 stelle runden int help=(zahl*100+0.5); //zahl mit 100 multiplizieren 0.5 draufschlagen und nach int casten( damit die kommatstellen wegfallen sollte jetzt also 471185 drin stehen zahl=(double)help/100; //voila die gewünschte gerundete zahl
Moment mal hab noch was vergessen. Denn es sollt 4/5 runden, also entscheiden ob nu auf oder abgerundet wird, wie würde denn das denn aussehen! denn mit dem 0,5 wird das ja ständig aufgerundet oder??
äh nein wird nicht ständig aufgerundet weil der cast nach int einfach die kommatstellen wegschneidet... deshalb musst du ja auch die 0.5 raufpacken weil sonst immer abgerundet wird
Bearbeitung:
ach so wenn die zahlen verdammt gross werden ist es vermutlich sinnvoller statt des casts nach int floor zu verwenden, da man sonst wohl einen unerwünschten überlauf bekommt
-- ...fleißig wie zwei WeißbroteDieser Post wurde am 26.04.2004 um 17:14 Uhr von Windalf editiert.