표현식을 평가하고 소수점 세 자리로 반올림합니다.

표현식을 평가하고 소수점 세 자리로 반올림합니다.

"5+50*3/20 + (19*2)/7"소수점 세 자리까지 반올림해야 한다는 표현이 있습니다 . 이 질문에 대한 대답은 입니다 17.92857142857143. 아래 스크립트를 사용하면 17.928대답은 입니다 17.929.

read exp
echo "scale=3; $exp" |bc -l

printf또 하나의 질문은 다음을 사용하여 동일한 작업을 수행하는 방법입니다 .

답변1

그냥 써:

read exp
printf %.3f $(echo "$exp" | bc -l)

답변2

"here string" end를 사용하여 두 개를 제거하여 주석의 표현식을 단순화할 수 있습니다 echo.

 printf "%.3f\n" "$(bc -l <<< "$var")"

심지어

 printf "%.3f\n" "$(bc -l <<< "5+50*3/20 + (19*2)/7")"

답변3

Python은 당신이 좋아하는 동작을 하는 것 같습니다:

$ echo 'print(round(' "5+50*3/20 + (19*2)/7" ', 3))' | python3
17.929

답변4

$exp 변수가 쉘 스크립트에서 17.92857142857143 값을 얻는다고 가정하고 다음 줄을 사용하여 이를 반올림하고 인쇄합니다.

python2 -c 'print round('$exp',3)'

관련 정보