Gunnar Bittersmann: Auf nächste Dezimalstelle runden

Beitrag lesen

@@Dodwin:

nuqneH

Ich suche eine Möglichkeit eine Zahl auf die nächstgrößere Dezimalstelle zu runden.

Nein, du möchtest nicht runden.

0.03 =>   0.1

Beim Runden käme da nicht 0.1 heraus, sondern 0.

Was du möchtest, ist die nächstgrößere (oder gleiche) Zehnerpotenz zu finden.

Das erreichst du mit dem Zehnerlogarithmus*:
lg 0.03 = -1.52…

Dazu suchst du dir die nächstgrößere (oder gleiche) ganze Zahl: ceil(-1.52) = -1

10⁻¹ = 0.1 ist deine geuchte Zehnerpotenz.

Allgemein: return Math.pow(10, Math.ceil(Math.log(x) * Math.LOG10E));

Qapla'

* zur Erinnerung:
[latex]\lg x = \frac{\ln x}{\ln 10} = \ln x \lg \mathrm e[/latex]

--
Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)