linux - 在不使用 "bc"的情况下计算 Shell 脚本中的舍入百分比

标签 linux shell percentage

我正在尝试计算 Shell 脚本中某些项目的百分比。我想四舍五入这个值,也就是说,如果结果是 59.5,我应该期望 60 而不是 59。

item=30
total=70
percent=$((100*$item/$total))

echo $percent

这给出了 42。

但实际上,结果是 42.8,我想将它四舍五入为 43。 "bc"可以解决问题,有没有不使用 "bc"的方法?

我无权安装任何新软件包。我的系统中不存在“dc”和“bc”。 应该是纯 Shell,也不能使用 perl 或 python 脚本

最佳答案

使用 AWK(无 bash 主义):

item=30
total=70
percent=$(awk "BEGIN { pc=100*${item}/${total}; i=int(pc); print (pc-i<0.5)?i:i+1 }")

echo $percent
43

关于linux - 在不使用 "bc"的情况下计算 Shell 脚本中的舍入百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24284460/

相关文章:

linux - 如何使用 awk 修复这个流式彩色比特币自动收报机?

linux - 将 shell 变量中的空格替换为 -

shell - sed 或 awk : group by 2 columns and get the last value of another column

postgresql - 如何将商显示为百分比

java - java中asynctask获取进度百分比

linux - 关于通过 shell 脚本传递参数的问题

c++ - 链接到可执行文件时如何强制将目标文件包含在静态库中?

C++ HTTP 客户端在 GET 请求后挂起 read() 调用

linux - 在 shell 后台运行进程 2 分钟,然后在 2 分钟之前终止它 BASH

r - 计算基准年和相对百分比变化的指数