我正在编写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")