
첫째로 숫자를 반올림하고 싶지 않습니다. 기본 10 숫자를 사용하므로 Excel에서는 간단한 덧셈과 뺄셈을 수행할 필요가 없습니다.
A| 665.110000000000000000000000000000
B| 4.990000000000000000000000000000
C| =a1+b1
D| 670.790000000000000000000000000000
E| 1,335.890000000000000000000000000000
F| =e1-(c1+d1)
-5를 받아야 하지만 F1이 반환됩니다.
-4.999999999999770000000000000000
이는 금융 문서이므로 반올림을 피하고 싶습니다. 왜 그래야 합니까? 소수점 이하 2자리를 사용하여 통화에 셀 형식을 지정하면 올바른 표시 값을 얻을 수 있지만 모든 계산에서는 여전히 -4.9999...7을 얻게 되어 조건부 형식 등에서 추가 오류가 발생합니다.
답변1
문제는 거의 모든 컴퓨터의 기본 하드웨어로 인해 발생합니다. 이는 이진 시스템을 기반으로 하므로 0에서 9까지 계산하지 않고 대신 0과 1 또는 밑수 2만 계산합니다.
고정밀 십진수를 원하지 않는 한 이것은 괜찮습니다. 컴퓨터는 1/2, 1/4, 1/8, 1/16, 1/32 등과 같이 1/2의 거듭제곱인 분수로만 계산할 수 있습니다. 컴퓨터가 이러한 숫자를 표현하는 쉬운 방법은 없습니다. 많은 성능을 포기하지 않고 완벽하게 정확하게 1/3 또는 4.99로.
Excel은 이 사실을 숨기는 데 매우 능숙합니다. 소수점 이하 20자리 정도를 설정하는 경우에만 이 오류가 표시됩니다. 반올림을 통해 이를 수행하지만 결과가 표시될 때만 반올림됩니다.
재무 계산을 위한 것이라고 하셨는데, 최종 결과를 소수점 이하 20자리까지 표시해야 합니까? 아니면 반올림 오류가 발생하지 않을 만큼 충분히 정밀하게 계산이 수행되는지 확인하면 됩니까? 후자라면 Excel이 몇 년 동안 수많은 금융 기관에서 문제 없이 그 일을 해 왔다는 것을 믿어야 할 수도 있습니다. 그리고 문제를 일으키는 반올림 오류에 대해 걱정할 필요가 없습니다.
답변2
이것은 이전에 여기에 답변되었습니다.
10진수의 "반올림" 숫자를 사용한다고 해서 도움이 되지 않습니다. 컴퓨터는 숫자를 이진수로 저장합니다. 10진법 숫자는 반복되는 이진수로 변환되며, 해당 소수점을 다시 변환하면 정보가 손실됩니다.
컴퓨터 사용자는 다음 두 가지 방법으로 이 문제를 해결합니다.
1) 특정 소수 자릿수까지 계산한 다음 소수점 이하 자릿수로 반올림합니다. 2) BCD 또는 다른 정확한 십진수 표현을 사용하십시오.
내가 아는 한 Excel에서는 #2를 사용하지 않으므로 다른 옵션을 선택하세요.
답변3
Excel에는 숫자를 표시하기 위해 선택한 정밀도로 숫자를 효과적으로 자동 반올림하는 "표시된 정밀도" 옵션이 있습니다.
http://support.microsoft.com/kb/78113
현재 반올림 오류는 소수점 이하 15자리이므로 계산에 전혀 영향을 미치지 않지만 Excel에 소수점 이하 2자리로 반올림하도록 지시할 때 계산에 반올림 오류가 발생할 수 있으므로 그렇게 하지 않는 것이 좋습니다.