Wenn d. Benutzer nicht weiß dass . statt , verwendet wird.

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
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hallo und ein frohes Neues.

Ist mein erster Beitrag. Folgendes Prob.:
Der Benutzer kann nicht wissen, dass mein Python-Programm das Komma
nicht als Dezimaltrennzeichen versteht. :roll:
Wie kann ich Python sagen, dass es das Komma als Punkt und eben halt doch als Dezimalzahl annehmen soll?

Hier mal den Code, ich möchte gern dass der Neubauwert am
besten im typischen Stil "350.000,00" eingegeben werden kann:

Code: Alles auswählen

baukostenindex2005 = 10.45
baukostindex2006 = 10.52
neubauwert = input ('Geben Sie bitte den Neubauwert in EUR ein: ')
versicherungswert2005 = neubauwert / 10.45
versicherungswert2006 = neubauwert / 10.52
print
print 'Nach dem Baukostenindex im Jahre 2006 (10,52 M/EUR)'
print 'betraegt der Versicherungswert 1914:', "%.2f" % versicherungswert2006, "M"
print
print 'Im Jahre 2005 (10.45 M/EUR) betrug dieser:', "%.2f" % versicherungswert2005, "M"
Edit (BlackJack): Code in Python-Tags gesetzt.
BlackJack

Das wirst Du manuell machen müssen. Und anstelle von `input()` solltest Du `raw_input()` nehmen. Sonst könnte der Anwender auch sowas wie "os.remove('wichtige_datei.txt')" eingeben. Das wird bei `input()` dann ausgeführt!

`raw_input()` liest eine Zeichenkette ein. Da musst Du dann erst die Punkte entfernen und dann das Komma durch einen Punkt ersetzen. Dann lässt sich eine Fliesskommazahl daraus machen. Ungetestet:

Code: Alles auswählen

def input_german_money_value(prompt):
    user_input = raw_input(prompt)
    user_input = user_input.replace('.', '').replace(',', '.')
    return float(user_input)
Bei Finanzrechnungen lohnt sich vielleicht ein Blick auf's `decimal` Modul, weil bei Fliesskommazahlen unter ungünstigen Umständen Rundungsfehler auftauchen können.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi Andy!

Das hier hilft dir evt. weiter.
http://www.python-forum.de/viewtopic.ph ... ennzeichen

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten