type-conversion format - Wie kann ich einen String mit Punkt und Komma in einen Float in Python konvertieren?





comma to (8)


Ersetzen Sie einfach , mit replace ().

f = float("123,456.908".replace(',','')) print(type(f)

type () zeigt Ihnen, dass es in einen Float umgewandelt wurde

Wie kann ich eine Zeichenfolge wie 123456.908 in Python in Float 123456.908 konvertieren?




Entferne einfach das , mit replace() :

float("123,456.908".replace(',',''))



Hier ist eine einfache Art und Weise, die ich für dich geschrieben habe. :)

>>> number = '123,456,789.908'.replace(',', '') # '123456789.908'
>>> float(number)
123456789.908



Was ist damit?

 my_string = "123,456.908"
 commas_removed = my_string.replace(',', '') # remove comma separation
 my_float = float(commas_removed) # turn from string to float.

Zusamenfassend:

my_float = float(my_string.replace(',', ''))



... oder anstatt die Kommas als zu filternden Müll zu behandeln, könnten wir die gesamte Zeichenfolge als lokalisierte Formatierung des Floats behandeln und die Lokalisierungsdienste verwenden:

from locale import *
setlocale(LC_NUMERIC, '') # set to your default locale; for me this is
# 'English_Canada.1252'. Or you could explicitly specify a locale in which floats
# are formatted the way that you describe, if that's not how your locale works :)
atof('123,456') # 123456.0
# To demonstrate, let's explicitly try a locale in which the comma is a
# decimal point:
setlocale(LC_NUMERIC, 'French_Canada.1252')
atof('123,456') # 123.456



Wenn Sie das Gebietsschema nicht kennen und alle Arten von Zahlen analysieren möchten, verwenden Sie diese parseNumber(text) Funktion parseNumber(text) . Es ist nicht perfekt, aber berücksichtigen Sie die meisten Fälle:

>>> parseNumber("a 125,00 €")
125
>>> parseNumber("100.000,000")
100000
>>> parseNumber("100 000,000")
100000
>>> parseNumber("100,000,000")
100000000
>>> parseNumber("100 000 000")
100000000
>>> parseNumber("100.001 001")
100.001
>>> parseNumber("$.3")
0.3
>>> parseNumber(".003")
0.003
>>> parseNumber(".003 55")
0.003
>>> parseNumber("3 005")
3005
>>> parseNumber("1.190,00 €")
1190
>>> parseNumber("1190,00 €")
1190
>>> parseNumber("1,190.00 €")
1190
>>> parseNumber("$1190.00")
1190
>>> parseNumber("$1 190.99")
1190.99
>>> parseNumber("1 000 000.3")
1000000.3
>>> parseNumber("1 0002,1.2")
10002.1
>>> parseNumber("")

>>> parseNumber(None)

>>> parseNumber(1)
1
>>> parseNumber(1.1)
1.1
>>> parseNumber("rrr1,.2o")
1
>>> parseNumber("rrr ,.o")

>>> parseNumber("rrr1rrr")
1



Wenn Sie ein Komma als Dezimaltrennzeichen und den Punkt als Tausendertrennzeichen haben, können Sie Folgendes tun:

s = s.replace('.','').replace(',','.')
number = float(s)

Hoffe es wird helfen




new ArrayList<T>(Arrays.asList(myArray));

myArray Sie sicher, dass myArray den gleichen Typ wie T . Sie erhalten einen Compiler-Fehler, wenn Sie versuchen, eine List<Integer> aus einem Array von int zu erstellen.





python type-conversion