Excel 2010 부동 소수점의 추가 사항 순서?


3

Excel 2010에 몇 가지 숫자를 입력하고 부동 소수점 문제가있는 것으로 나타났습니다. 나는 네 개의 숫자의 합을 취하여 제로를 기대하고, 대단히 적은 수, 0에 가깝습니다. 나는 "좋아, 부동 소수점 문제, 뭐든간에."라고 생각했습니다. 그러나 다른 순서로 추가하면 결과 합계가 0으로 나타납니다.

왜 다른 순서로 추가하면 Excel에 영향을 미칩니 까? ? 나는 이것을 기대하지 않았다. 예, 1.13E-13은 매우 작고 0에 매우 가깝습니다. 나는 왜 계산의 차이가 덧셈의 순서에 기초하는지 궁금해.

Excel screenshot

원시 데이터는 다음과 같습니다.

573.7   
-144.79 
-309.84 
-119.07 
1.136868E-13    =sum(A1:A4)
0.000000E+00    =A1+A2+A3+A4
1.13687E-13 =A4+A3+A2+A1

2
이들 KB 조항 도움이 될지 모른다.
Burgi

1
나는 또한이 wiki 기사를 우연히 만났다 ... en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel 확실히 흥미로운 문제가 될 수 있습니다.
Ditto

1
또한이 질문을 참조하십시오 : 수퍼 유저 /questions/863192/...
Burgi

나는 그것을 보상하는 방법에 관한 기사를 보았습니다. 주문이 중요한 이유에 대해 더 궁금합니다. 나는 그 기사에서 그것을 놓쳤는가?
kmort

Excel에는 사용할 숫자가 고정되어 있습니다. 큰 숫자로 시작하면 더 작은 숫자에 대해서는 숫자가 남지 않아서 계산에 영향을 미치지 않을 수도 있습니다. 가장 작은 숫자로 시작하면 Excel이 해당 숫자로 작업합니다. 나중에 더 큰 숫자를 추가하면 더 작은 수의 정밀도 중 일부가 손실 될 수 있지만 해당 집계가 포함될 수있을만큼 커질 수 있거나 적어도 반올림에 영향을 줄 수 있습니다.
fixer1234

답변:


2

귀하가 수식 평가 함수를 사용하면 중간 결과에서 a + b + c + d가 왼쪽에서 오른쪽으로 구문 분석됩니다. 따라서 a + b + c + d는 실제로 ((a + b) + c) + d로 계산됩니다.

즉, 먼저 a + b의 결과가 계산됩니다 ( IEEE754 형식으로 저장 ), 그 결과에 c가 더하기보다.

((a + b) + c) + d가 a + (b + (c + d))와 같지 않기 때문에 왜 결과가 다른지 설명합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.