如何输出浮点结果



我正在编写bash脚本:需要评估输入,然后将结果输出为浮点*.xxx:

我知道:

read var1
var2=$((var1))
#echo $var2
echo $((var1))

输入:5+50*3/20 + (19*2)/7

我的输出是17,但应该是17.929

如何将其评估为浮动?

Bash只支持整数运算。

在您的情况下,您可以使用bc(1)

read var1
var2="$(bc <<<"scale=2;$var1")"

使用bc(1)中的小数位数变量设置有效位数(默认为0(。

bc(1)受到截断误差的影响(截断发生在每一步(。

另一种选择是使用calc(1)(如果您的系统上有(:

var2=$(calc -d "_=config("display", 3);$var1")

最新更新