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

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

Beitragvon Andy » Sonntag 1. Januar 2006, 21:32

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

Beitragvon BlackJack » Sonntag 1. Januar 2006, 22:37

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: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Sonntag 1. Januar 2006, 22:39

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Montag 2. Januar 2006, 16:02


CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder