为了账号安全,请及时绑定邮箱和手机立即绑定

不以bash打印十进制值?

不以bash打印十进制值?

侃侃无极 2021-04-06 13:09:02
我想对表达式求值并将输出正确显示为我在以下代码中尝试过的3个小数位,但是它无法正常工作,这有助于我在bash中执行此操作。echo -e "Enter expression to calculate : \c"read numlet a=numprintf '%f\n' "$a"Input :  5+50*3/20 + (19*2)/7Output :  17.000000Desired Output : 17.929
查看完整描述

3 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

bc

echo 'scale=3; 5+50*3/20 + (19*2)/7' | bc -l

输出:

17.928


查看完整回答
反对 回复 2021-04-16
?
HUWWW

TA贡献1874条经验 获得超12个赞

代替let a=num,您可以例如:


echo $num | bc 

17.92857142857142857142


查看完整回答
反对 回复 2021-04-16
?
萧十郎

TA贡献1815条经验 获得超13个赞

这是极少数情况下的一种情况,可以让shell变量扩展为awk脚本主体的一部分:


$ num='5+50*3/20 + (19*2)/7'


$ awk 'BEGIN{print '"$num"'}'

17.9286


$ awk 'BEGIN{printf "%0.3f\n", '"$num"'}'

17.929


查看完整回答
反对 回复 2021-04-16
  • 3 回答
  • 0 关注
  • 276 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信