2016-04-26 15 views
0

Ich verwendete printf "% 0.2f \ n" $ myVar Methode, um etwas auf 2 Dezimalstellen anzuzeigen, aber es funktioniert nicht für Zahlen mit Punkt (.) Als Dezimalzeichen, aber Komma (,)Bash Runde 2 Dezimalstellen mit Punkt

Jeder hat eine Idee, was soll ich tun?

http://puu.sh/owM1p/21f5be08c2.jpg

+1

Das sieht aus wie ein Problem der Verwechslung mit Ihrem [locale] (https://en.wikipedia.org/wiki/Locale) Einstellungen. Sehen Sie sich die Ausgabe des Befehls 'locale' an oder zeigen Sie sie an. Sie können das Gebietsschema für bestimmte Dinge (wie 'LC_NUMERIC') ändern, indem Sie die entsprechenden Werte der Variablen ändern. (Ich würde "C" oder "POSIX" locale versuchen.) – e0k

Antwort

1

Versuchen Sie, Ihren locale-Umgebungsvariable LC_NUMERIC bis zu einem gewissen Gebietsschema, das Zeit verwendet Einstellung. Z.B.

LC_NUMERIC="C" printf "%0.2f\n" 3.1415 

Das Gebietsschema muss in Ihrem System installiert werden. Verwenden Sie locale -a

+0

Das OP ist in einem Gebietsschema, das Komma verwendet, deshalb arbeitet es nicht für Zahlen, die '.' als Trennzeichen enthalten. –

Verwandte Themen