簡體   English   中英

在Python中將float轉換為整數-無效的文字錯誤

[英]Convert float to integer in Python - invalid literal error

如何將此數字轉換為可以進行簡單數學運算的整數? (例如下面的10.5200。)

{"bid":["10.52000000","0.70824000"],"ask":["10.54000000","2.07336000"],"seq":2456916}

我收到以下錯誤,這使我精神錯亂:

ValueError: invalid literal for int() with base 10: '10.52'

這是我正在運行的:

bitfl = json.loads(bitfl)
bid = bitfl['bid']
ask = bitfl['ask']
bidd = bid[0] #edit - this is actually in, as it's a list
askk = ask[0]
print('diff: %i' % (int(bidd[0]) - int(askk[0])))

我不知道為什么只接受“ 10.52”作為字符串,浮點數或unicode並將其轉換為可計算的普通整數應該是如此困難!

任何幫助表示贊賞!

問題是您正在嘗試將包含非整數的字符串轉換為整數。

最簡單/最佳的解決方案是使用int(float(yourstring))

由於您以JSON形式接收數據,因此您還應該考慮要求提供數據的任何客戶端不要將字符串用於非字符串數據。

只需寫int(float(bidd[0]))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM