确定浮点数的小数位数
Determining the number of decimals in a float number
我想 运行 一个命令(例如 ls -lrt) 49 次并且每次在前一个 运行 之后 20 毫秒。我在 bash 文件中写的是:
for i in `seq 1 49`;
do
v=6.$((i*20)
sleep $v && ls -lrt
done
但它显然没有区分 i 等于 4 和 i 等于 40 的情况,因为两者都导致 v = 6.8。我需要的是等待 i=4 的 6.080 和 i=40 的 6.800。
您可以使用printf
格式化数字:
printf -v v '6.%03d' $((i*20))
-v v
指定变量 $v
应该保存结果。
怎么样v=$(echo "scale=2;6+$i*0.02"|bc)
如果结果大于 7
,这将继续增加,尽管直到 49
才会发生。但我个人认为它比字符串连接更好。
我想 运行 一个命令(例如 ls -lrt) 49 次并且每次在前一个 运行 之后 20 毫秒。我在 bash 文件中写的是:
for i in `seq 1 49`;
do
v=6.$((i*20)
sleep $v && ls -lrt
done
但它显然没有区分 i 等于 4 和 i 等于 40 的情况,因为两者都导致 v = 6.8。我需要的是等待 i=4 的 6.080 和 i=40 的 6.800。
您可以使用printf
格式化数字:
printf -v v '6.%03d' $((i*20))
-v v
指定变量 $v
应该保存结果。
怎么样v=$(echo "scale=2;6+$i*0.02"|bc)
如果结果大于 7
,这将继续增加,尽管直到 49
才会发生。但我个人认为它比字符串连接更好。