Bash – это хорошо известная оболочка и командный язык, используемый для эффективного выполнения задач. Во время работы в сценариях Bash и явной игры с плавающими числами часто бывает необходимо округлить плавающие числа. В этом посте мы изучим несколько команд и приемов сценариев Bash для округления числа до двух знаков после запятой.
При отображении чисел или переменных, содержащих числа с плавающей запятой, различные команды могут печатать текст или переменные, такие как echo, print и printf. Хотя мы можем отображать переменные и числа непосредственно из таких команд, тем не менее, единственная команда, которая имеет некоторые дополнительные функции и возможности, – это команда printf, которая касается нашей цели.
Команда printf аналогична функции printf() в языке C. Это позволяет нам форматировать и распечатывать аргументы.
Синтаксис для написания команды printf в bash:
printf "string" arguments
В команде printf мы сначала должны указать строку в кавычках, а затем передать ей аргументы.
Давайте сначала напечатаем простой текст с помощью команды printf:
printf "Привет от AndreyEx."
Вы можете видеть, что он только что распечатал строку, но имя пользователя и имя хоста идут сразу после строки.
Чтобы получить строку в одной строке, мы можем использовать символ новой строки ‘\n’, чтобы получить чистый и понятный вывод:
printf "Привет от AndreyEx \n"
Теперь у нас есть чистый и понятный результат.
Теперь давайте посмотрим, как предоставить аргументы, чтобы дать этой команде printf число с плавающей запятой и округлить его.
Чтобы предоставить аргументы, нам нужно использовать спецификатор (%s) в строке, который будет заменен предоставленными аргументами. Например:
printf "Номер пользователя: %s \n" 24
Хорошо, теперь вы поняли основное использование и функциональность команды printf. Давайте предоставим ему число с плавающей запятой и посмотрим, как округлить до двух знаков после запятой.
Модификатор точности используется для округления числа с плавающей запятой.
Синтаксис для написания модификатора точности состоит в том, чтобы указать количество десятичных знаков, которое вы хотите округлить, число, за которым следует точка (.).
"%.2f"
Чтобы округлить число с плавающей запятой до двух знаков после запятой, вы можете выполнить команду printf, как показано ниже:
printf "%.2f \n" 4.4444
На прилагаемом скриншоте видно, что число «4,4444» округлено до «4,44», как мы и хотели.
Точно так же, вместо того, чтобы напрямую указывать ему номер, мы также можем указать здесь переменную.
num=4.4444 printf "%.2f \n" $num
Чтобы указать несколько значений:
num1=3.333 num2=4.4444 printf "%.2f %.3f \n" $num1 $num2
Если вы все еще хотите использовать команду echo и округлить число, в этом случае вы должны использовать команду echo с командой awk для округления числа, как показано ниже:
echo "3.333" | awk '{printf("%.2f \n",$1)}'
или же
num=3.333 echo num | awk '{printf("%.2f \n",$1)}'
Этот пост содержит подробное и подробное руководство по команде printf, и мы научились округлять любое число до 2 десятичных знаков с помощью команды printf. Кроме того, мы попробовали несколько примеров, чтобы получить хорошие знания о том, как использовать модификатор точности для округления числа с помощью команды printf. Более того, мы научились округлять любое число с плавающей запятой с помощью команд echo и awk.