不以bash打印十进制值?

我想对表达式求值并将输出正确显示为我在以下代码中尝试过的3个小数位,但是它无法正常工作,这有助于我在bash中执行此操作。


echo -e "Enter expression to calculate : \c"

read num

let a=num

printf '%f\n' "$a"


Input :  5+50*3/20 + (19*2)/7


Output :  17.000000


Desired Output : 17.929


侃侃无极
浏览 278回答 3
3回答

月关宝盒

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

HUWWW

代替let a=num,您可以例如:echo $num | bc 17.92857142857142857142

萧十郎

这是极少数情况下的一种情况,可以让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
打开App,查看更多内容
随时随地看视频慕课网APP