Daniel: Ziffern eines int zählen

Hallo

Ich muss die Anzahl Ziffern eines int zählen und mache das mit

String.valueOf(int).length();

Kann das Probleme geben oder ist das völlig in Ordnung?

Gruss Daniel

  1. Hi,

    String.valueOf(int).length();
    Kann das Probleme geben oder ist das völlig in Ordnung?

    Wieviele Ziffern hat -1 und wie lang ist der String "-1"?
    Noch Fragen?

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Danke...

      Gruss Daniel

    2. Hallo,

      Wieviele Ziffern hat -1 und wie lang ist der String "-1"?
      Noch Fragen?

      Das ist einfach gelöst.

      if (zahl > 0) {
          len = String.valueOf(int).length();
      else
          len = String.valueOf(int).length() - 1;

      ;-)

      Aber mal ernsthaft: Wie bestimmt man die Anzahl der Ziffern am
      sinnvollsten? Neben der sehr mathematischen Lösung von Frank
      würde mir eigentlich nur folgende Lösung einfallen:

      zahl = -67890;
      len  = 0;
      while (zahl != 0) {
          zahl /= 10;
          len++;
      }

      Wobei man da wieder ein Sonderbehandlung für zahl = 0 bräuchte...

      Gruß
      Slyh

  2. hi!

    Ich muss die Anzahl Ziffern eines int zählen und mache das mit
    String.valueOf(int).length();
    Kann das Probleme geben oder ist das völlig in Ordnung?

    Ich glaube, mathematisch gesehen wäre das sowas wie

    n(x) = 1+round(Re(log(x)))

    round() rundet nach unten ab, Re() liefert den Realteil und log() ist
    der Logarithmus zur Basis 10. Durch Änderung der Logarithmus-Funktion
    könnte man sogar ausrechnen lassen, wie viele Ziffern die gleiche
    Zahl im Binärsystem bräuchte. Und das klappt natürlich auch für
    negative Zahlen.

    Viel Spaß beim implementieren... :)

    bye, Frank!

    --
    Never argue with an idiot. He will lower you to his level and then
    beat you with experience.