2016-04-26 3 views
0

Я использовал метод printf "% 0.2f \ n" $ myVar, чтобы отображать что-то на 2 десятичных знаках, но он не работает для чисел с точкой (.) Как десятичной меткой, а запятой (,)Bash round 2 decimal places with dot

У кого-нибудь есть идеи, что мне делать?

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

+1

Это выглядит как вопрос о путанице с вашей [локали] Настройки (https://en.wikipedia.org/wiki/Locale). Пожалуйста, посмотрите или покажите результат команды 'locale'. Вы можете изменить язык, используемый для определенных вещей (например, «LC_NUMERIC»), изменив соответствующие значения переменных. (Я бы попробовал языковой стандарт 'C' или' POSIX'.) – e0k

ответ

1

Попробуйте настроить переменное языковую среду LC_NUMERIC в определенную местность, которая использует период. Например.

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

Языковой стандарт должен быть установлен в вашей системе. Чтобы получить полный список установленных мест, используйте locale -a

+0

OP находится в локали, в которой используется запятая, поэтому она не работает для чисел, содержащих '.' в качестве разделителя. –