Sirius3 hat geschrieben: Samstag 26. September 2020, 21:05
Was gibt es da zu konkretisieren? Um Zahlen mit lokalen Einstellungen zu formatieren, braucht man locale.format.
Ich habe es jetzt selber hingekriegt, aber es ist eigentlich nicht die Lösung, die ich vom Sinn des LOCALE erwarte.
Mußte die Strings mit eigenen Wrappern umwandeln. Da könnte ich ja auch eine Funktion schreiben, die einen Punkt in ein Komma umwandelt.
Code: Alles auswählen
#!/usr/bin/python
import locale
locale.setlocale(locale.LC_ALL,'')
print(locale.localeconv())
print(locale.getdefaultlocale()[0])
print("decimal_point:", locale.localeconv()["decimal_point"])
print(locale.format_string("%.1f",(float(1)/float(2))))
f=123.456
print(locale.format_string("%.3f",f))
Stelle ich in UNIX (reden wir mal nicht von Windows) das LOCALE ein, so sorgt die Runtime (intrinsisch) dafür, daß die Ausgabe im gesetzten LOCALE erfolgt. Beispiel in C:
Code: Alles auswählen
#include <locale.h>
#include <stdio.h>
int main () {
double d=123.456;
printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE"));
printf("%f\n",d);
return(0);
}
Die Runtime-Library sorgt dafür, daß die Ausgabe im gewünschten Format erfolgt. Geht das nicht in Python?