Anonymous hat geschrieben:Warum ist es denn nötig, einen expliziten Typecast zu machen:
Ich dachte Python mach allesvon allein!
Nein, denn wenn du einen Int durch einen Int teils, kommt immer ein Int raus. Deswegen muss einer der Faktoren ein float sein.
Jetzt noch meine umgeräumte Version:
Code: Alles auswählen
def compare(ist, soll, proz, ABS):
if abs(ist-soll) <= (soll * proz)/100.0 + ABS :
print "eq"
return True
else:
print "neq"
return False
print compare(4.0,5,10,0)
Änderungen: Nach Styleguide neu formatiert, True und False statt 1 und 0 benutzt (lesbarer), aus der Umwandlung in Float einfach durch einen Float geteilt, die globale Variable c eliminiert.
Edit (Leonidas): Der Thread wurde
geteilt.