If ohne Wirkung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
m-raisch
User
Beiträge: 1
Registriert: Mittwoch 22. Juni 2016, 07:05

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
Zuletzt geändert von Anonymous am Mittwoch 22. Juni 2016, 09:43, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
Benutzeravatar
miracle173
User
Beiträge: 127
Registriert: Samstag 6. Februar 2016, 00:28

[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
Antworten