Ich habe eine Zeichenfolge im Format: 'nn.nnnnn' in Python, und ich möchte es in eine ganze Zahl konvertieren.Konvertiere einen String in Integer mit Dezimal in Python
Direkte Umwandlung fehlschlägt:
>>> s = '23.45678'
>>> i = int(s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '23.45678'
ich es in eine Dezimalzahl umwandeln kann mit: ‚‘
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
ich auch spalten könnte auf, dann das Dezimalsystem von null subtrahiert, dann füge das zu der ganzen Zahl ... yuck.
Aber ich würde es lieber als int, ohne unnötige Art Konvertierungen oder Manöver haben.
Matt, 23.45678 ist keine Ganzzahl. Wenn Sie möchten, dass Python eine Zeichenfolge in eine Ganzzahl konvertiert, stellen Sie sicher, dass Sie eine Ganzzahl angeben. Man kann argumentieren, was das "Richtige" ist und am Ende wird jemand unglücklich sein. – Christopher