Zufriedenstellende Rundung
Sie wissen, wann Sie im Naturwissenschaftsunterricht sind, und haben gebeten, auf 2 Sig Feigen zu runden, aber Ihre Antwort lautet 5.2501...
? Sie sollten sich zu runden 5.3
, aber das ist einfach so unbefriedigend! Wenn Sie auf runden 5.3
, haben Sie eine ganze Differenz von 0,05, was im Vergleich zu 0,1 (dem Stellenwert, auf den Sie runden) eine große Abweichung darstellt! Also hilf mir auf befriedigende Weise.
Um zufriedenstellend zu runden, müssen Sie an der ersten Stelle runden, die einen relativ kleinen Fehler verursacht - weniger als die Hälfte des maximal möglichen Rundungsfehlers. Grundsätzlich müssen Sie immer dann runden, wenn Sie auf 0, 1, 8 oder 9 stoßen. Wenn dies nicht der Fall ist, geben Sie die Eingabe wie sie ist zurück. Runden Sie nicht auf führende Nullen oder Einsen - das fühlt sich einfach nicht befriedigend an.
Eingang
Ein String oder Float-Wert, der eine nicht negative Dezimalzahl darstellt.
Ausgabe
Dieselbe Dezimalzahl wurde zufriedenstellend gerundet, entweder im Zeichenfolgen- oder im Gleitkommaformat.
Beispiele
Input -> Output
0 -> 0
0.5 -> 0.5
0.19 -> 0
0.8 -> 1
5.64511 -> 5.645
18.913 -> 20
88.913 -> 100
36.38299 -> 36.4
621 -> 620
803.22 -> 1000
547.4726 -> 547.4726
Dies ist eine Code-Golf- Herausforderung, also gewinnt der kürzeste Code!
036.40000
eine gültige Ausgabe?
.0
Teil für ganze Zahlen angegeben wird? Auch 0
ist nicht positiv.
19
rundet auf 20
aber 0.19
rundet auf 0
? Warum?