Seite 1 von 1

If ohne Wirkung

Verfasst: Mittwoch 22. Juni 2016, 07:11
von m-raisch
Hallo und guten Morgen,

heute ist mein erster Tag hier im Forum und ich habe die Hoffnung, das mir hier geholfen wird.

Nun zum Problem. Ich habe folgende If Anweisung.

Code: Alles auswählen

prozentsatz = accessor('Einnahmen', 'MehrwertsteuerProzentsatz')

if betrag:
        if prozentsatz == 7:
            adder('3004401', betrag)
            adder('3004402', betrag * Decimal('0.07'))
            sum_mwst += betrag * Decimal('0.07')
        else:
            adder('3003303', betrag)
            adder('3003304', betrag * Decimal('0.19'))
            sum_mwst += betrag * Decimal('0.19')
Problem: Egal ob in Prozentsatz 7 steht oder nicht es wird immer nur else ausgeführt. Hat jemand eine Idee an was das liegen kann?

Schon jetzt herzlichen Dank! Viele Grüße Matthias

Re: If ohne Wirkung

Verfasst: Mittwoch 22. Juni 2016, 07:44
von Sirius3
@m-raisch: um Quellcode zu posten ist direkt über dem Editfeld ein Dropdown "Code auswählen", wo man Python auswählen kann, damit auch die Einrückungen sichtbar werden.

Zum Problem: es fehlt die entscheidende Information, woher kommt "prozentsatz"; da niemand hier weiß, was die Funktion "accessor" macht, kann man nur raten. accessor wird wahrscheinlich einen String zurückgeben und da Python streng typisiert ist, kann ein String niemals gleich einer Zahl sein. Da Du Decimal benutzt, ist das einfachste, prozentsatz auch erst einmal in ein Decimal umzuwandeln.

Re: If ohne Wirkung

Verfasst: Mittwoch 22. Juni 2016, 16:55
von miracle173
[codebox=pys60 file=Unbenannt.txt]
if 100*0.07==7:
print('7%')
else:
print('keine 7%')
[/code]
Hallo
Üüberrascht es dich, das mein kleines Programm bei mir 'keine 7%' ausgibt?
[codebox=pys60 file=Unbenannt.txt]
print(str(100*0.07))
[/code]
macht mir klar, warum. Es kommt nämlich

[codebox=text file=Unbenannt.txt]
7.000000000000001
[/code]
als Ausgabe. Vielleicht liegt bei dir der selbe Grund vor.

Du könntest uns das Ergebnis von
[codebox=pys60 file=Unbenannt.txt]
type(prozentsatz)
[/code]
mitteilen.
mfg günter