Bash环境下将两数相除所得浮点数四舍五入为整数的实现方法
Bash 两数相除四舍五入取整实现方案
你可以基于你提供的 bc 计算逻辑,封装成如下可直接使用的 Bash 函数:
# 函数作用:传入被除数和除数,返回四舍五入后的整数结果 divide_round() { # 校验参数数量 if [[ $# -ne 2 ]]; then echo "用法错误:请传入2个参数,格式为 divide_round 被除数 除数" return 1 fi # 计算两数相除的浮点结果,bc的-l参数用于加载数学库支持浮点运算 n=$( echo "$1 / $2" | bc -l ) # 浮点结果加0.5后截断取整,实现四舍五入效果 n=$( echo "($n + 0.5) / 1" | bc ) echo "$n" }
使用示例
- 计算5除以2:执行
divide_round 5 2,返回结果为3 - 计算7除以3:执行
divide_round 7 3,返回结果为2 - 计算10除以4:执行
divide_round 10 4,返回结果为3
注意:当前方案默认适配正数值的计算场景,如果你需要支持负数四舍五入、除数为0异常拦截,可以在此基础上补充对应判断逻辑即可。
内容的提问来源于stack exchange,提问作者Han
相关产品推荐
相关产品推荐

