如何在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 %sn' $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

最新更新