Discussion:
Komma-Separator
(zu alt für eine Antwort)
Armin Horner
2006-10-20 07:28:44 UTC
Permalink
Habe mit dem bc ein kleines Problem:

Printf verlangt ja als Kommazeichen den Beistrich,
(gut, da die Werte mit Beistich eingegeben werden (am Zehnerblock))
bc hingegen den Punkt.

.. muss man die Kommazahlen immer hin u. her wandeln oder gibt es
eine bessere Moeglichkeit?

bc u. printf-manual habe ich gelesen (.. nichts gefunden)


Liebe Gruesse

Armin
Heike C. Zimmerer
2006-10-20 09:16:57 UTC
Permalink
Post by Armin Horner
Printf verlangt ja als Kommazeichen den Beistrich,
Nicht ganz, es ist von der eingestellten Locale abhängig (LC_NUMERIC).

| ***@tazzelwurm:~(1)$ LC_NUMERIC=C
| ***@tazzelwurm:~$ printf "%f\n" 3.57
| 3.570000
| ***@tazzelwurm:~$ LC_NUMERIC=de_DE.utf-8
| ***@tazzelwurm:~$ printf "%f\n" 3.57
| bash: printf: 3.57: invalid number

Dummerweise verhalten sich das Builtin der bash und /usr/bin/printf
von GNU auch noch unterschiedlich. Portabel ist's nur in der "C"
locale.
Post by Armin Horner
bc hingegen den Punkt.
Dort spielt die Locale keine Rolle. Es würde wohl zu viele Programme
brechen.
Post by Armin Horner
.. muss man die Kommazahlen immer hin u. her wandeln
Denke schon.

Gruß,

Heike
Armin Horner
2006-10-20 09:52:19 UTC
Permalink
Post by Heike C. Zimmerer
Post by Armin Horner
Printf verlangt ja als Kommazeichen den Beistrich,
Nicht ganz, es ist von der eingestellten Locale abhängig (LC_NUMERIC).
| 3.570000
| bash: printf: 3.57: invalid number
Dummerweise verhalten sich das Builtin der bash und /usr/bin/printf
von GNU auch noch unterschiedlich. Portabel ist's nur in der "C"
locale.
Post by Armin Horner
bc hingegen den Punkt.
Dort spielt die Locale keine Rolle. Es würde wohl zu viele Programme
brechen.
Post by Armin Horner
.. muss man die Kommazahlen immer hin u. her wandeln
Denke schon.
Gruß,
Heike
Hallo Heike

Danke , ist eine grosse Hilfe

..stelle printf auf Punkt um dann brauch ich nur noch die Eingaben
umwandeln (in meinem Script 5 read)

da viele Berechnungen und Ausgaben am Drucker u. in Dateien sind
(ca. 30), spare ich viel Code.
(.. und es schaut wieder normal aus. (keine uncod u. recod mehr))

Sollte man es nach dem Script zurueckstellen oder kann man es auf C lassen?

liebe Gruesse

Armin

PS.: .. suche auch nach der Katze, aber bisher nichts gefunden
Heike C. Zimmerer
2006-10-20 10:15:04 UTC
Permalink
Post by Armin Horner
..stelle printf auf Punkt um dann brauch ich nur noch die Eingaben
umwandeln (in meinem Script 5 read)
So würde ich's auch machen.
Post by Armin Horner
Sollte man es nach dem Script zurueckstellen oder kann man es auf C lassen?
Da brauchst Du nichts zurückzustellen. Die Einstellungen im Script
haben ja auf die Shell drüber keinerlei Einfluss. 'export LC_ALL=C' am
Skriptbeginn reicht und Du brauchst Dich bei Locales nur noch um Ein-
und Ausgaben zu kümmern, denn für das Skript und alle dort
aufgerufenen Programme hast Du eine feste Umgebung. Dafür ist LC_ALL
ja da.

Gruß,

Heike

Loading...