Умножение на десятичные числа в bash [closed]

Когда я запускаю

p=0.1
k=2
while [ $p \< 1 ]
do
    echo $p
    p=$(echo "scale=2; $p*$k" | bc)
done

у меня есть такой результат

0.1
.2
.4
.8

Что я могу сделать, чтобы получить 0,1, 0,2, 0,4 и 0,8?

1
задан 20 November 2012 в 20:05

2 ответа

Используйте printf вместо echo для его форматирования:

printf %0.1f\\n $p

Вывод:

$ p=0.1; k=2
$ while [ $p \< 1 ]; do     printf %0.1f\\n $p ;     p=$(echo "scale=2; $p*$k" | bc); done
0.1
0.2
0.4
0.8
0
ответ дан 20 November 2012 в 20:05

Я бы использовал seq и printf для решения моей проблемы. проверьте это:

for i in $(seq .1 .2 1); do printf "%0.1f\n" "$i"; done

Может быть, это поможет вам продолжить.

0
ответ дан 20 November 2012 в 20:05

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

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