您如何执行十进制乘法并将结果打印在 Bash 的一行中?
How do you perform decimal multiplications and print the responses out on one line in Bash?
我想执行以下一系列乘法并将答案打印成两行,如下所示。
for i in 0.99 0.98
do
echo -n "$i"
echo "$i * 0.002" | bc
echo "$i * 10.234" | bc
done
它目前打印成四行:
0.99 .001
10.131
0.98 .001
10.029
相反,我需要它分两行打印出来:
0.99 .001 10.131
0.98 .001 10.029
我愿意对代码进行任何必要的更改,只要我得到如上所示的两行答案。
for i in 0.99 0.98
do
printf '%s %s %s\n' $i $(bc <<< "$i * 0.002; $i * 10.234")
done
这是一个使用 awk 的版本,注意:精度更高,希望对您有所帮助
echo '0.99 0.98' | awk '{for(X=1;X<= NF;X++){ print $X " " $X * 0.002 " " $X * 10.234 }}'
0.99 0.00198 10.1317
0.98 0.00196 10.0293
我想执行以下一系列乘法并将答案打印成两行,如下所示。
for i in 0.99 0.98
do
echo -n "$i"
echo "$i * 0.002" | bc
echo "$i * 10.234" | bc
done
它目前打印成四行:
0.99 .001
10.131
0.98 .001
10.029
相反,我需要它分两行打印出来:
0.99 .001 10.131
0.98 .001 10.029
我愿意对代码进行任何必要的更改,只要我得到如上所示的两行答案。
for i in 0.99 0.98
do
printf '%s %s %s\n' $i $(bc <<< "$i * 0.002; $i * 10.234")
done
这是一个使用 awk 的版本,注意:精度更高,希望对您有所帮助
echo '0.99 0.98' | awk '{for(X=1;X<= NF;X++){ print $X " " $X * 0.002 " " $X * 10.234 }}'
0.99 0.00198 10.1317
0.98 0.00196 10.0293