echo와 printf 결과의 차이점

echo와 printf 결과의 차이점

다음 코드에 대해 다른 결과가 표시되는 이유는 무엇입니까?

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와 의 숫자처리의 차이입니다.printfbc

계산된 숫자를 출력하는 printf대신 마지막 숫자를 반올림할 것이라고 생각합니다 .bc

두 방법 모두 더 많은 숫자를 출력하도록 하여 이를 확인할 수 있습니다.

관련 정보