실습 · 연습문제 1개
불확실성에 맞춰 반올림하기 uncertainty-rounding
결과 표의 숫자는 불확실성이 허락하는 자릿수까지만 쓴다. 규칙은 두 단계다.
- 불확실성(표준편차·표준오차 등)
err를 유효숫자sig자리로 반올림한다. - 평균
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)이다.