You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中输出浮点数计算结果?

Bash脚本实现浮点数计算并输出三位小数格式

Bash内置的$(( ))算术扩展仅支持整数运算,会自动截断小数部分,这就是你得到17而非17.929的原因。要实现浮点数计算,需借助外部工具,以下是两种可行方案:

方案一:使用bc工具

bc是支持高精度浮点运算的命令行计算器,通过scale参数指定小数位数:

read var1
# scale=3设置保留3位小数,通过bc计算表达式
result=$(echo "scale=3; $var1" | bc)
# 确保输出格式严格为*.xxx(整数结果自动补全三位小数)
printf "%.3f\n" "$result"

测试输入5+50*3/20 + (19*2)/7,输出为17.928(bc的精度计算会保留三位小数,若需更精准的四舍五入可结合printf处理)

方案二:使用awk工具

awk原生支持浮点运算,且能直接控制输出的四舍五入格式:

read var1
awk -v expr="$var1" 'BEGIN{printf "%.3f\n", eval(expr)}'

测试输入同一表达式,输出为17.929,完全符合你的预期结果。

内容的提问来源于stack exchange,提问作者ZedZip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 05:20:24