![]() |
![]() |
C++ |
G.Eichelsdörfer - Staatliche Technikerschule Weilburg |
Diese Funktion rundet eine importierte Fließkommazahl auf drei Stellen hinter dem Dezimalpunkt. Damit kann hier die berechnete Gesprächsgebühr auf Zehntel Cent gerundet werden. 1/10 Cent = 1/1000 Euro
Eine Implementation dieser Funktion kann mit unterschiedlichen Verfahren erfolgen. Es folgt nur eines dieser möglichen Verfahren.
double runden3(double Val)
|
Es wird festgestellt, ob Val (von value) negativ ist. In diesem Fall erhält die boolesche Variable
negativ
den Wert true, andernfalls false.
Falls Val negativ ist, wird sein Vorzeichen umgekehrt. Nach dieser Anweisung ist Val immer positiv (oder Null).
Hier findet die Rundung auf drei Stellen hinter dem Dezimalpunkt statt.
floor()
(von floor=Raumboden) liefert die nächstkleinere ganze Zahl
des Arguments oder den Argumentwert selbst, wenn dieser bereits ganzzahlig ist.floor()
das "Abschneiden" der Stellen
hinter dem Punkt.
Der gerundete Wert wird der Aufruferin als Resultat zur Verfügung gestellt.
Hier wird ein bedingter Ausdruck verwendet. Ein bedingter Ausdruck besitzt die Struktur
boolescher Ausdruck ? Wahrwert : Falschwert
Wenn der boolesche Ausdruck wahr ist, wird der Wahrwert zum Wert des Ausdrucks, andernfalls wird es der Falschwert.
Der obige bedingte Ausdruck ergibt somit -Val, wenn der Parameter ursprünglich negativ war.
War der Parameter ürsprünglich positiv, ist negativ falsch. Dann ergibt der bedingte Ausdruck den Wert von Val.
kurz: Vor der Rückkehr wird das ursprüngliche Vorzeichen des Parameters wiederhergestellt.
Versuchen Sie einmal, diese Funktion ohne den bedingten Ausdruck zu implementieren!
Ein anderes Verfahren wechselt nicht das Vorzeichen des Parameters.
Stattdessen können die mathematischen Funktionen floor() (s.o.) und ceil() verwendet werden.
ceil() (von ceiling=Raumdecke) liefert die nächstgrößere ganze Zahl des Arguments oder den Argumentwert selbst,
wenn dieser bereits ganzzahlig ist. ceil(-12.2)liefert den Wert -12.0.