bash에서 예상한 대로 printf가 숫자를 반올림하지 않는 이유는 무엇입니까? [복사]

bash에서 예상한 대로 printf가 숫자를 반올림하지 않는 이유는 무엇입니까? [복사]
prompt> printf "%.2f\n" 3.314
3.31
prompt> printf "%.2f\n" 3.315
3.32

좋아요, 제가 원하는 걸 얻었어요. 그러나 다른 숫자를 사용하면 다음과 같은 결과가 나타납니다.

prompt> printf "%.2f\n" 28.124
28.12
prompt> printf "%.2f\n" 28.125
28.12

두 번째 경우에는 왜 올바르게 반올림되지 않습니까? 그렇게 되어야 28.13하지 않습니까?

답변1

printf은행가 반올림 사용(짝수는 내림, 홀수는 내림):

printf '%.2f\n' 28.125    # 28.12
printf '%.2f\n' 28.135    # 28.14
printf '%.2f\n' 28.145    # 28.14
printf '%.2f\n' 28.155    # 28.16

자세한 내용은 다음을 참조하세요.부동 소수점 가이드

관련 정보