Moin,
also die Anzahl der Vorkommastellen? Dann ist der dekadische Logarithmus (also der Logarithmus zur Basis 10) das Mittel der Wahl. Der ist nämlich immer um 1 weniger als die Stellenzahl, solange das Argument positiv und größer oder gleich 1 ist.
Die Formulierung stimmt so nicht.
Es wird impliziert, dass der Logarithmus immer eine natürliche Zahl ist. Du meinst den ganzzahligen Anteil des Logarithmus.
logisch, das sollte beim Begriff "Anzahl der Stellen" eigentlich klar sein. Und deswegen hatte ich dem Code-Beispiel ja auch einen Fußboden spendiert.
parseInt(Math.log10(Math.abs(x))) + 1
sollte für alle Varianten das richtige Ergebnis liefern:
Außer für abs(x)<1, aber dann muss man sich sowieso fragen, wie man die Zahl der Vorkommastellen definieren möchte. Grundsätzlich 1? Wäre zwar richtig, aber nicht unbedingt nützlich. Da kommt es darauf an, wozu man diesen Wert verwenden will.
Ich hatte diese Aufgabenstellung schon oft, um herauszubekommen, in welcher Größenordnung ein Wert liegt, also ob Millionen, Tausende oder gar Hundertstel. Dann wären auch die begativen Werte, die die genannte Formel für x<1 liefert, noch sinnvoll.
So long,
Martin
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy