2016-06-02 2 views
1

動作しません。これは私がfloat()を使用してfloat型にUnicode値を変換する必要があり、私のコードの一部ですが、私は例外あなたを1としてinvalid literal float()Djangoの変換は

print("before conversion ",request.POST['prix']) 
prix=request.POST['prix'] 
prixConvert= float(prix) 
print("after conversion ") 
print(prixConvert) 
+1

エラーの原因となる変換しようとした番号の例を投稿してください。 – C14L

+0

確認してください。ユニコードに数字以外の文字が含まれていると、これが起こります。 – AceLearn

+0

リクエストを印刷してください。[[prix]]浮動小数点型にしようとしているものを表示してください –

答えて

1

を得ましたあなたの「番号」には実際には,が含まれています。これは、float()呼び出しの有効な文字ではありません。最初に.に変換する必要があります。

print("before: {}".format(request.POST['prix'])) 

prix = request.POST['prix'].replace(',', '.') 
prixConvert = float(prix) 

print("after conversion: {}".format(prixConvert)) 

、より良い、エラーをキャッチし、あなたの入力は非常に信頼性がない場合は、あなたが前に入力を「クリーンアップ」するために、より.replace()の呼び出しを追加することができます

try: 
    prixConvert = float(prix) 
except ValueError: 
    print('That was not a valid float number.') 

有効な文字列を指定するようにユーザーに伝えます変換すると、そうでなければ無効な入力の中に隠されている数字をもっと捕まえることができます。

+0

ありがとう、それは今動作します – 1616

関連する問題