簡體   English   中英

不以bash打印十進制值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM