Bash float 和负值

标签 bash shell unix sh

您好,我正在尝试使用以下代码产生浮点精度

让 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/

相关文章:

java - 使用 shell 脚本将参数传递给 Java

linux - 遍历目录中特定扩展名的所有文件

python - 将 "Ctrl-A"放入 Python shell 脚本中

linux - 如何针对旧版本的库进行配置/制作/安装?

bash - 应用替换 N 次

shell - 使用 mysqldump 时脚本抛出意外运算符

linux - 如何递归列出某个位置的所有目录,广度优先?

c - Unix: "ls -l"在哪里获取设备大小字段中的逗号分隔值?

linux - 多线程环境 - 类 UNIX 环境中的 C++ 信号处理(freeBSD 和 linux)

linux - Bash 使用两个列表创建目录/子目录