Я хочу сравнить значение с 0, и он говорит мне, что он меньше 0. Я использовал
solution=`echo $a / $b | bc -l`
Эта проблема возникает только тогда, когда «a» меньше, чем «b». [ ! d1]
a=1
b=3
printf -v solution "%.2f" $(bc -l <<< "$a / $b")
echo $solution
Вывод:
0.33Если $ a и $ b всегда целые числа, и вы ищете решение bash для деления двух целых чисел: тогда вам может быть интересно это.
С printf:
$ printf '%f' $(echo $a / $b | bc -l)
0.200000
Если вы хотите только 1 позицию после десятичной точки:
$ printf '%.1f' $(echo $a / $b | bc -l)
0.2
Вы также можете получить начальный ноль, используя perl:
$ echo 1 / 3 | bc -l | perl -ne 'printf"%0.2f\n",$_'
0.33
Или вы можете использовать только perl:
$ 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"