2016-09-06 11 views
1

これは私のコードです。私は初心者を執行しています。私はプログラムを実行すると浮動小数点エラー文字列

私は値を置くことができますが、私はループの外に出たときに、次のエラーメッセージが表示されます。

a + = float (input ("Enter the product cost")) 

とValueErrorを:float型に文字列を変換できませんでした:

ことができます誰か助けて?ここで

それが行く:

e = 0.25 
f = 0.18 
a = 0.0 

while True: 
    a += float(input("Enter the product cost: ")) 
    if a == "":   
     break 

b = a*e 
c = a*f 
d = a+b+c 

print ("tax: " + b) 
print ("tips: " + c) 
print ("Total: " + d) 
+0

あなたは 'a_input =フロート(入力( "製品コストを入力する:"))を行うことができます。複数の行に

スプリットそれは' –

答えて

0

は問題がいくつかあります:空の文字列("")いるため

  1. チェック来るfloat値に追加しようとした後、 a。入力が数値であることを確認するために例外を処理する必要があります。
  2. 誰かが空の文字列や無効な文字列を入力しなかった場合、無限ループに陥り、何も印刷されません。これは、b, c, dの計算とprintsのインデントがwhileループの範囲外であるためです。

これは、あなたが欲しいものを行う必要があります。文字列の入力、およびfloatに文字列の変換:

e = 0.25 
f = 0.18 
a = 0.0 

while True: 
    try: 
     input_number = float(input("Enter the product cost: ")) 
    except ValueError: 
     print ("Input is not a valid number") 
     break 
    a += input_number   
    b = a*e 
    c = a*f 
    d = a+b+c 

    print ("tax: ", b) 
    print ("tips: ", c) 
    print ("Total: ", d) 
1

あなたが同じ行に2つの操作を組み合わせています。空の文字列を入力してプログラムを終了すると、表示されるエラーメッセージでfloatへの変換が失敗します。エラーには変換しようとした文字列が含まれており、空です。

while True: 
    inp = input("Enter the product cost: ") 
    if inp == "":   
     break 
    a += float(inp) 
+0

は 'Pythonのキーワードin'ませんか?おそらく変数の名前を – Li357

+0

@AndrewLに変更します。ありがとう、それは愚かな間違いでした。 –

+0

問題はありません。素晴らしい答えです! – Li357

関連する問題