2016-07-23 7 views
-2

Bei einer reellen Zahl zwischen 0 und 1 (zB 0.2836) möchte ich nur die Zahl ohne den Punkt zurückgeben (zum Beispiel in diesem Fall von 0.2836 -> 2836 oder 02836). Ich habe versucht, Python zu benutzen, aber ich habe gerade angefangen und brauche Hilfe.Entfernen der Periode von der Zahl in Python

+2

Zeigen Sie, was Sie versucht haben. (und du meinst * Punkt *, nicht Komma) – Idos

+0

Ich habe nichts versucht, weil ich nicht weiß, wo ich anfangen soll – Peterix

+2

'str (number) .replace ('.', '')' –

Antwort

4

Solange Sie eine Nummer haben, gehen Sie wie folgt sollten:

>>> number = 0.2836 
>>> int(str(number).replace('.', '')) 
2836 

Wenn ein . in der Zeichenkette nicht gefunden, str.replace gibt nur die ursprüngliche Zeichenfolge.

mit mehr Zahlen:

>>> int(str(1).replace('.', '')) 
1 
>>> int(str(1.2).replace('.', '')) 
12 
+0

So weit ich sehe, der Befehl funktioniert mit Zahlen mit weniger als 12 Ziffern nach dem Komma, ist da eine Möglichkeit, mehr Ziffern zurückzugeben? – Peterix

+0

@Peterix [Gleitkommaarithmetik: Probleme und Einschränkungen] (https://docs.python.org/3/tutorial/floatingpoint.html#floating-point-arithmetic-issues-and-limitations) –

0

Der einfachste Weg, um ein unerwünschtes Zeichen zu entfernen, aus einem Streifen seine .replace Verfahren mit einem leeren String als zweites Argument zu nennen ist:

x = str(123.45) 
x = x.replace('.','') 
print(x)     # Prints 12345 

Note, dies würde alle führenden Nullen hinterlassen (dh 0.123 mit dieser Methode würde 0123 ergeben)

Wenn Sie dort wissen Dezimalsystem, 4 Zahlen nach (und im Fall, dass es weniger, Sie wollen nachgestellte Nullen) sind immer sagen, könnten Sie die Nummer mit einem geeigneten Faktor multiplizieren zuerst:

x = 123.4567 
x *= 10000 
x = str(int(x))   # Convert float to integer first, then to string 
print(x)     # Prints 1234567 

Es gibt andere Optionen, aber Dies kann Sie in die richtige Richtung weisen.

Verwandte Themen