Seite 1 von 1

Unicode zu int

Verfasst: Dienstag 26. August 2014, 16:05
von ChriGru
Guten Tag zusammen,

ich habe ein Objekt, an dem mir type() verrät, dass es unicode ist und ich kann es mir ausgeben lassen:

Code: Alles auswählen

 
>> print ding
u'2.22600338959746E-02'
Der Versuch, das ding gemäß Google-Vorschlägen zu int zu machen schlug eher fehl

Code: Alles auswählen

>> ding1 = sdev.encode('ascii')
'2.22600338959746E-02'

Kann mir jemand dabei helfen so eine schöne Zahl ins int-format zu bekommen, damit ich mit der noch etwas Mathematik betreiben kann?
Ich bedanke mich bereits.
/ChriGru

Re: Unicode zu int

Verfasst: Dienstag 26. August 2014, 16:16
von Hyperion
Äh... also das mag ein Unicode-String sein, aber der enthält zum einen keinen Integer-Wert und zum anderen hilft ein Encodieren in einen Byte-String ja mal gar nichts in diesem Kontext!

Probier's mal mit der ``float``-Funktion ;-)

Re: Unicode zu int

Verfasst: Dienstag 26. August 2014, 16:18
von /me
Durch encode bekommst du eine Byte-Sequenz. Mal abgesehen davon ist das kein Wert aus dem man eine Integer-Zahl machen könnte. Du kannst aber einen Fließkommawert daraus machen und daraus dann ein Integer.

Code: Alles auswählen

>>> int(u'2.22600338959746E-02')

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    int(u'2.22600338959746E-02')
ValueError: invalid literal for int() with base 10: '2.22600338959746E-02'
>>> float(u'2.22600338959746E-02')
0.0222600338959746
>>> int(float(u'2.22600338959746E-02'))
0
Man findet solche Funktionen übrigens recht gut in der Dokumentation (int, float, str.encode). Du könntest auch einfach erst mal über das Tutorial einsteigen.

Re: Unicode zu int

Verfasst: Mittwoch 27. August 2014, 08:52
von ChriGru
Der Nebel ist gelichtet.

Code: Alles auswählen

>>> float(u'2.22600338959746E-02')
0.0222600338959746

Das war sehr dumm von mir, da hab' ich mich verrannt. Ich entschuldige mich.
Vielen Dank für die raschen und kompetenten Antworten!
/ChriGru