다음 코드에 대해 다른 결과가 표시되는 이유는 무엇입니까?
read a
printf "%.3f\n" $(bc -l <<< "$a")
결과: 17.929 그리고
read a
echo "scale=3; $a" | bc -l
결과: 17.928
내 입력 표현은5+50*3/20 + (19*2)/7.
그들은 같은 일을 하는 것처럼 보이지만 최종 결과는 다릅니다. 왜?
변경 사항(사용에코) 위의 두 번째 스니펫에서도 첫 번째 스니펫과 동일한 결과를 얻을 수 있나요?
답변1
echo
와 의 차이 가 아니라 printf
와 의 숫자처리의 차이입니다.printf
bc
계산된 숫자를 출력하는 printf
대신 마지막 숫자를 반올림할 것이라고 생각합니다 .bc
두 방법 모두 더 많은 숫자를 출력하도록 하여 이를 확인할 수 있습니다.