Python提供長的便利方法()到字符串轉換爲長:轉換字符串長在python
long('234')
;轉換「234」爲長
如果在234.89用戶鍵則Python會引發錯誤消息:
ValueError: invalid literal for long()
with base 10: '234.89'
我們應該怎麼Python程序員處理場景中有一個十進制值的字符串?
謝謝=)
Python提供長的便利方法()到字符串轉換爲長:轉換字符串長在python
long('234')
;轉換「234」爲長
如果在234.89用戶鍵則Python會引發錯誤消息:
ValueError: invalid literal for long()
with base 10: '234.89'
我們應該怎麼Python程序員處理場景中有一個十進制值的字符串?
謝謝=)
long
只能採取串敞篷其可以在基座10標記結束。所以,小數點造成傷害。你可以做的是,float
調用long
之前的值。如果你的程序在Python 2.x中的int和long差別很重要,並且你確定你沒有使用大整數,那麼你可以用int
來提供關鍵。
所以,答案是long(float('234.89'))
或者它可能只是int(float('234.89'))
如果你不使用大整數。另外請注意,這種差異在Python 3中不會出現,因爲默認情況下int會升級爲long。 python3中的所有整數都是長的,並且調用隱藏的只是int
好,多頭不能裝東西,但整數。
一種選擇是使用浮動:float('234.89')
另一種選擇是向截斷或舍入。從浮點數轉換成一個長將截斷爲您:long(float('234.89'))
>>> long(float('1.1'))
1L
>>> long(float('1.9'))
1L
>>> long(round(float('1.1')))
1L
>>> long(round(float('1.9')))
2L
將其轉換爲浮點數?抓住錯誤並向用戶報告? – John
此問題及其答案僅適用於Python 2. Python 3不再具有長類型,請參閱http://python3porting.com/differences.html#long – hertzsprung