그래서 코딩할 때 0.12 대신 0.12를 인쇄하도록 출력을 얻으려고 합니다. 아래는 내 코드입니다
echo -n "What is the total cost? ";
read cents
cost=$(echo "scale =2;$cost_in_cents/100" | bc);
percent=$(echo "scale =2;$percent / 100" | bc);
tip=$(echo "scale =2;$cost*$percent" | bc);
overall_cost=$(echo "scale =2;$cost+$tip" | bc);
average_cost=$(echo "scale =2;$overall_cost/${#GUESTS[@]}" | bc);
출력은 다시 0.12라는 올바른 출력을 제공하지만 소수점 앞에 0을 추가해야 합니다. 미리 감사드립니다!
답변1
value=$(printf "%3.2f\n" $(echo "scale=2; 12 / 100" | bc))
답변2
이 같은:
$ a=$(echo "0.1 + 0.1" | bc) && echo "$a"
.2
$ a=$(printf '0%s\n' "$a") && echo $a
0.2
선택하다:
$ echo "0.1 0.1" | awk '{printf "%.2f\n", $1 + $2}'
0.20
답변3
Bash에는 printf가 있습니다. printf '%.2f' $cents
소수점 이하 두 자리까지 인쇄 반올림과 같은 작업을 수행할 수 있습니다 . 변수에 할당하려면 구조를 사용 -v
하거나 사용하십시오 .$()