[英]decimal value is not printing in 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
使用bc
:
echo 'scale=3; 5+50*3/20 + (19*2)/7' | bc -l
輸出:
17.928
代替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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.