您好,我正在尝试使用以下代码产生浮点精度
让 number1=0 number2=0 运算符=+
printf "%0.2f\n" result=$(( number1 $operator number2 ))
代码可以在没有 printf 的情况下工作,但我不知道如何执行负(-)计算和浮点?
最佳答案
Bash 不支持浮点计算,因此,您可以将正在运算的数字乘以所需小数位数的零:
# 10.321 - 123.01
result=$(( 10321 - 123010 ))
echo ${result:0:-3}.${result:${#result} - 3}
或者只是使用其他工具来执行此操作,例如 bc
:
echo "scale=2; 10.321 - 123.01" | bc
此外,您使用的语法无效;你应该有:
printf "%0.2f\n" $(( number1 $operator number2 ))
关于Bash float 和负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410230/