Я хочу сравнить значение с 0, и оно говорит мне, что это - меньше чем 0. Я использовал
solution=`echo $a / $b | bc -l`
Эта проблема происходит только, когда "a" является меньше, чем "b".
bc
не распечатает начальный нуль. Можно распечатать вывод путем передачи по каналу его к
awk '{printf "%0.2f", $1}'
Для суммирования:
solution=$(echo 1 / 3 | bc -l | awk '{printf "%0.2f", $1}')
echo $solution
a=1
b=3
printf -v solution "%.2f" $(bc -l <<< "$a / $b")
echo $solution
Вывод:
0.33
, Если $a и $b всегда являются целыми числами и Вы ищете удар только решение разделить два целых числа: Тогда Вы могли бы интересоваться это .
С printf
:
$ printf '%f' $(echo $a / $b | bc -l)
0.200000
, Если Вы хотите только 1 положение после десятичной точки:
$ printf '%.1f' $(echo $a / $b | bc -l)
0.2
Или можно использовать жемчуг только:
$ export a=1 b=3; perl -e 'printf("'%.2f'\n", $ENV{a}/$ENV{b});'
0.33
и для Вашего сценария:
solution=$(export a=1 b=3; perl -e 'printf("'%.2f'\n", $ENV{a}/$ENV{b});')
echo "$solution"
Можно также получить использование начального нуля perl
:
$ echo 1 / 3 | bc -l | perl -ne 'printf"%0.2f\n",$_'
0.33