[Python-de] locale LC_NUMERIC Strategien

Diez B. Roggisch deets at web.de
Mit Dez 14 13:26:07 CET 2005


> welche Strategien setzt ihr ein, um in floats aus dem Komma einen
> Punkt zu machen und umgekehrt.

---------

import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE')
'de_DE'
>>> locale.ato
*
<fun>atof(1-2) Parses a string as a float according to the locale settings.
<fun>atoi(1) Converts a string to an integer according to the locale settings.
>>> locale.atof("12,234")
12.234
>>> locale.atof("12.234")
12234.0
>>>                               
-------


> Ich suche nun den Weg, die floats mit '.' als Dezimaltrenner zu
> versorgen, damit sie richtig in eine DB geschrieben werden können.

Das hoert sich sehr falsch an. Wenn du die parametrisierte Variante von 
SQL-executes verwendest, dann gibst du ein float rein. Was man auch genau so 
tun sollte. Und nicht etwa irgendwelche SQL-Strings zusammenbosseln.


> Der Rückweg: DB float mit '.' ---> Anzeige in einem Textfeld mit ','
> ist mir auch noch nicht ganz klar.

>>> locale.format("%f", 12.2345)
'12,234500'


MfG Diez