Länge einer INT zahl in Python ermitteln?
Ich möchte für ein einfaches Python Projekt gerne die anzahl Stellen einer INT Zahl ermitteln. Das ganze mache ich zurzeit mit einem umcasten der INT zahl in einen String und dann mit "len(variable)". Wenn ich das so mache, bekomme ich bei einem weitere Algorythmus dann probleme. In diversen foren habe ich gelesen, dass man dies auch mit einer .math funktion machen kann. Aber geht das ganze nicht einfacher?
5 Antworten
Bestimme den Logaritmus der Zahl zur Basis 10 und runde auf die nächsthöhere ganze Zahl auf.
int = 123
laenge = len(str(int))
int += 1
print(str(int) + " hat eine Länge von " + str(laenge))
Da bei wird nur temporär in einen String konvertiert aber int bleibt als int erhalten ;-)
Ausgabe des Programms:
124 hat eine Länge von 3
Warum bekommst Du beim weiteren Algorithmus Probleme?
Die Variante mit Log10 wurde Dir schon gezeigt, Du kannst es auch durch sukezessive Multiplikation austesten. Und DU kannst im Prinzip auch das Verfahren, daß für die Erzeugung des Strings verwendet wird nutzen (Wiederholte Ganzzahldivisionen durch 10).
Was stört Dich denn an den verfügbaren Ansätzen?
Da brauchst du erstmal kein Python sondern Mathematik.
Angenommen die Zahl 123. Wie kannst du diese als Zehnerpotenz darstellen?
int(math.log(10000000, 10) + 1)
Aus dem Kopf heraus