0

この数値を簡単な計算ができる整数に変換するにはどうすればよいですか?! (例: 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」を文字列、浮動小数点数、またはユニコードとして受け入れ、それを通常の計算可能な整数に変換するのがなぜそれほど難しいのかわかりません!

どんな助けでも大歓迎です!

4

2 に答える 2

4

問題は、整数以外を含む文字列を整数に変換しようとしていることです。

最も簡単な/最良の解決策は使用していますint(float(yourstring))

データを JSON として受け取るため、データを提供するクライアントが非文字列データに文字列を使用しないように要求することも検討する必要があります。

于 2012-08-25T02:18:43.183 に答える
1

簡単に書くint(float(bidd[0]))

于 2012-08-25T02:34:55.483 に答える