그러나 실수를 사용할 때는 주의할 점이 있습니다. 실수는 컴퓨터에서 완벽하게 표현할 수 없는 경우가 있기 때문에 계산 결과에 미세한 오차가 있을 수 있습니다. 다음 샘플 코드를 보면 3.141592 - 3.0의 결과가 정확히 0.141592가 아닌 0.14159200000000016으로 출력되는 것을 볼 수 있습니다.
> 3.141592 - 3.0
0.14159200000000016
이러한 문제를 해결하기 위해 C#은 정밀도가 더 높은 decimal 데이터 형식을 제공합니다. decimal을 사용하면 앞의 연산에서 발생하는 미세한 오차를 피할 수 있습니다.
> decimal PI = 3.14159M;
> PI - 3.0M
0.14159
decimal 데이터 형식은 주로 금융 계산처럼 높은 정밀도가 필요한 경우에 사용합니다. 하지만 decimal은 double이나 float에 비해 메모리를 더 많이 사용하고, 연산 속도가 느릴 수 있으므로 필요한 경우에만 사용하면 좋습니다.