rechnen

Django, Flask, Bottle, WSGI, CGI…
Antworten
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Freitag 11. April 2008, 14:23

Hi,
ich habe eigentlich ein einfaches Problem, jedenfalls dachte ich das:

Ich bekomme über Radio-Buttons Werte (conference_fee, values sind: 300, 350 und 500) und diese möchte ich minus 10% wieder ausgeben:

Mein Python-Skript

Code: Alles auswählen

n = context.REQUEST.get('promocode')
c = context.REQUEST.get('conference_fee')

b = (c // 100) *10
Wie kann ich also den Wert der in 'c' kommt in eine zahl umwandeln, damit ich rechnen kann, momentan kommt immer dieser Fehler zurück:
Error Type
TypeError
Error Value
unsupported operand type(s) for /: 'type' and 'int'
Muss ich da noch irgendetwas importieren, oder mach ich da sowieso einen Blödsinn?

Danke
michi
Benutzeravatar
dennda
User
Beiträge: 17
Registriert: Montag 19. November 2007, 22:07

Freitag 11. April 2008, 14:42

// scheint mir da völlig falsch.

Des weiteren hast du da anscheinend Integer-Werte, also ganze Zahlen.
Um da ordentlich zu rechnen brauchts einen TypeCast. Du kannst einfach b = c * 0.9 machen. Da wird dann implizit ein Cast auf float durchgeführt. (Zumindest verstehe ich dein "minus 10%" so. Mathematisch ist der Ausdruck nicht korrekt.)

Explizit kannst du die Casts auch vornehmen, z.B. mit float() und int().

Ich hoffe das hilft dir.
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Freitag 11. April 2008, 14:50

Ja, hat geholfen. Danke
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Freitag 11. April 2008, 17:59

und wie erstelle ich 2 Kommastellen, egal welches Ergebnis rauskommt?
also zb: = 3.5 => 3.50
oder 3 => 3.00

den round(z, i) tut es ja nicht so es bei mir nicht so!`?
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Freitag 11. April 2008, 18:17

Code: Alles auswählen

print "%.2f" % your_float
Das ist übrigens nur eine Sache der Ausgabe, nicht der Berechnung. Andernfalls bis du bei "round" schon richtig.
Antworten