Seite 1 von 1

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

Verfasst: Sonntag 1. Januar 2006, 21:32
von Andy
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.

Verfasst: Sonntag 1. Januar 2006, 22:37
von 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.

Verfasst: Sonntag 1. Januar 2006, 22:39
von gerold
Hi Andy!

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

mfg
Gerold
:-)

Verfasst: Montag 2. Januar 2006, 16:02
von jens