在bash中与十进制数相乘

在bash中与十进制数相乘

当我跑步时

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

使用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

答案2

我会使用 seq 和 printf 来解决我的问题。检查一下:

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

也许这会帮助你继续下去。

相关内容