Что я могу сделать для изменения эти “.33” значение в “0,33”?

Я хочу сравнить значение с 0, и оно говорит мне, что это - меньше чем 0. Я использовал

solution=`echo $a / $b | bc -l`

Эта проблема происходит только, когда "a" является меньше, чем "b".

5
задан 1 May 2015 в 02:42

5 ответов

bc не распечатает начальный нуль. Можно распечатать вывод путем передачи по каналу его к

awk '{printf "%0.2f", $1}'

Для суммирования:

solution=$(echo 1 / 3 | bc -l | awk '{printf "%0.2f", $1}')
echo $solution
4
ответ дан 23 November 2019 в 08:43
a=1
b=3
printf -v solution "%.2f" $(bc -l <<< "$a / $b")
echo $solution

Вывод:

0.33

, Если $a и $b всегда являются целыми числами и Вы ищете удар только решение разделить два целых числа: Тогда Вы могли бы интересоваться это .

5
ответ дан 23 November 2019 в 08:43

С printf:

$ printf '%f' $(echo $a / $b | bc -l)
0.200000

, Если Вы хотите только 1 положение после десятичной точки:

$ printf '%.1f' $(echo $a / $b | bc -l)
0.2
3
ответ дан 23 November 2019 в 08:43

Или можно использовать жемчуг только:

$ 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"
1
ответ дан 23 November 2019 в 08:43

Можно также получить использование начального нуля perl:

$ echo 1 / 3 | bc -l | perl -ne 'printf"%0.2f\n",$_'
0.33
1
ответ дан 23 November 2019 в 08:43

Другие вопросы по тегам:

Похожие вопросы: