2011-12-13 4 views
0

위의 코드를 실행하면 (즉각적인 창 등을 사용하여) 나는 26194.999999과 같은 결과를 얻었지만 수동으로 또는 계산기 결과를 사용하면이 전체 값인 26195과 같이 나타납니다. 어떻게 된거 야? 위의 두 값 배수에 대해 .NET에서 계산이 어떻게 수행됩니까? 어떤 언어 - - 단지 특정 곱셈 값 .NET에서 다른 그렇지 않으면 99 %의 곱셈VB.NET의 곱셈 오류?

+3

이렇게 많은 질문이 있지만 항상 쉽게 찾을 수있는 것은 아닙니다. http://csharpindepth.com/Articles/General/FloatingPoint.aspx 및 http://csharpindepth.com/Articles/General/Decimal.aspx를 참조하십시오 - C#의 관점에서 왔지만 기본은 동일합니다. –

+0

['Double.Epsilon'] (http://msdn.microsoft.com/en-us/library/system.double.epsilon.aspx) –

+1

@UweKeim : 솔직히 말해서 유용한 링크가 아닙니다. 특히 절대적으로 제로의 설명이있는. –

답변

1

당신이 프로그래밍을 배울 필요가 가장 중요한 것들 중 하나는 올바른 소수점 연산 부동 근사치 때문이다!

이것은 "나쁜 것"이 아니며 확실히 "놀라운"것이 아닙니다.

이 링크를 읽어 보시기 바랍니다 : 여기

+0

재미있는 사실 : 임의의 정밀도를 지원하는 Mathematica에서 이것을 실행하면 값이 '26194.999999999996'이됩니다. 어디서나이 작업을 수행하면 다소 차이가있을 수 있습니다. –