2016-09-22 6 views
0

Ich möchte eine dezimale Eingabe davon abhalten, mehr als 00.0 (1dp) zu sein. So sie Eingabe eine Zahl, aber ich will es als Prozentsatz (zB 44,7% bzw. 7,5%) Hier 1dP ist der Code:So fügen Sie die Überprüfung für mehr als 1dp hinzu

while nameSave <=0 or nameSave >99: 
     while True: 
      try: 
       nameSave = float(input("Enter % Savings (Between 1-99%): ")) 
       break 
      except: 
       print("Needs to be a number ") 
+0

einen Blick Nehmen Sie an [diesem] (http://stackoverflow.com/questions/3221654/specifying-number-of-decimal-places-in-python) Das sollte der Trick –

Antwort

0
while nameSave <=0 or nameSave >99: 
    while True: 
     try: 
      nameSave = float(input("Enter % Savings (Between 1-99%): ")) 
      check = str(nameSave) 
      if (check[1] == '.' and len(check) > 3) or len(check) > 4: 
       print("Needs to be precise to 1 decimal point") 

      break 
     except: 
      print("Needs to be a number ") 
+0

Ich dachte das gleiche, was, wenn sie 2,75 eingeben, würde das seit seiner 3 Ziffern akzeptiert werden. (4 wenn Sie den Dezimalpunkt zählen) Ich möchte 2,75 nicht akzeptiert werden. Danke für die schnelle Antwort – Noob123444

+0

Es sollte jetzt funktionieren, aber ich denke es gibt bessere Lösungen dafür. –

+0

funktioniert nicht: /, bessere Lösungen? – Noob123444

Verwandte Themen