이거참.. 질문을 쓰긴 씁니다만 뭐라 써야 잘 표현이 될지도 난감하군요.
일단 내용을 말씀드리도록 하겠습니다.
지금 하는 일이 전력관련 일이라 최대 소수점 4자리까지 계산하는 경우가 많습니다.
어느날 처리된 데이터와 출력값을 보니 일치하지 않는다 하여 찾아봤더니..
0.2가 되어야할 데이터가 무슨 이유에선지 0.1이더군요.
디버깅을 해보니 문제는 사사오입이었습니다.
데이터 double dx가 있다고 가정했을때, 이 dx를 필요에 따라서 소수점 1~5자리까지 위치를 지정해서 사사오입을 합니다.
(사사오입하는 매크로 PP를 만들어서 쓰고 있습니다)
여기에 출력할땐 소수점 첫째자리에서 저기에 출력할때 소수점 셋째자리에서 사사오입을 하는 것이지요.
그런데, 공교롭게도 문제인 데이터 dx는 0.15였고, 더욱 공교롭게도 사사오입 위치는 소수점 2째자리 였습니다.