如何选择脚本中变量的位数?

如何选择脚本中变量的位数?

本质上,我正在运行一个脚本,该脚本从其他文件中获取一堆数字,并以有用的方式将它们组合在一起。

它目前运行良好,但它正在打印它正在抓取的数字中的每一个数字(grepping?这是一个词吗?),我想更早地对其进行四舍五入。

主要思想的一个例子是:

var1=$(grep.....)

echo $var1 >> output.dat

但这给了我类似 1.235215233462345345362 的东西,我想要更少的数字。

奖金问题:

返回的一些数字采用科学记数法。有什么办法可以改变这种情况吗?

ssh腻子

发行商 ID:RedHatEnterpriseServer 描述:Red Hat Enterprise Linux Server 版本 6.5(圣地亚哥) 版本:6.5 代号:圣地亚哥

答案1

使用 printf 而不是 echo :

$ echo "$a"
1.235215233462345345362

$ LC_ALL=C printf '%.1f\n' "$a"
1.2
$ LC_ALL=C printf '%.3f\n' "$a"
1.235

LC_ALL=C是为了确保小数点始终.(在输入和输出上),无论用户的区域设置如何(可能在哪里,))。

相关内容