23.9 Figure와 Table 제작

실습 · 연습문제 1개

불확실성에 맞춰 반올림하기 uncertainty-rounding

결과 표의 숫자는 불확실성이 허락하는 자릿수까지만 쓴다. 규칙은 두 단계다.

  1. 불확실성(표준편차·표준오차 등) err를 유효숫자 sig자리로 반올림한다.
  2. 평균 mean을 반올림한 err의 마지막 자리와 같은 자릿수로 반올림한다.

format_pm(mean, err, sig=2)를 완성해 "평균 ± 불확실성" 문자열을 반환한다(± 앞뒤에 공백 하나).

입력 sig 결과
0.41325281, 0.04468845 2 "0.413 ± 0.045"
11.68, 1.0021 2 "11.7 ± 1.0" (끝의 0도 유효숫자다)
1234.0, 156.0 2 "1230 ± 160" (소수점 왼쪽 자리에서 반올림)
0.52, 0.0996 1 "0.5 ± 0.1"

주의할 경우가 셋 있다.

  • 반올림이 자릿수를 올리는 경우. 0.0996을 유효숫자 1자리로 반올림하면 0.1이 된다. 처음 계산한 자릿수(소수 둘째 자리)로 쓰면 0.10, 즉 유효숫자 2자리가 되어 버린다. 반올림한 값으로 자릿수를 다시 정한다.
  • 음의 0. 평균 -0.0004를 소수 셋째 자리로 반올림하면 -0.000이 나올 수 있다. 0.000으로 쓴다.
  • 불확실성이 0 이하. err <= 0이면 자릿수를 정할 수 없으므로 ValueError를 낸다.

힌트: 소수 자릿수는 sig - 1 - floor(log10(err))이다. 이 값이 음수이면 round(x, 음수)가 십의 자리·백의 자리에서 반올림한다. 문자열로 쓸 때의 소수 자릿수는 max(자릿수, 0)이다.