2015-01-19 4 views
0

나는 문 아래로 C#에서 계산 문이 :두 번 계산 값은

enter image description here

:

(-0.0116 * (5.08 - 0.52 * Math.Pow(5.08, 1.3)) * Math.Pow(0.5, 1.1) * (-0.14 * Math.Pow((19000 * 0.5), 0.8))) 

내가 디버깅과 볼이 문을 추가, 그것은 스크린 샷 아래로 표시했다

하지만 double 변수에 할당하면 결과가 변경됩니다.

enter image description here

구현을 변경하지 않고 0.89713135944117184을 얻으려면 어떻게해야합니까?

답변

0

C#에서 double의 최대 정밀도는 15 또는 16 자리입니다. the reference here을 참조하십시오.

.Net 4+를 사용하고 있다고 가정 할 때 BigInteger을 사용해야합니다. BigInteger "임의로 큰 부호있는 정수를 나타냅니다." See the BigInteger documentation here.

BigInteger 클래스를 사용하여 10 진수 기반 계산을 수행하는 구현 예는 this answer을 참조하십시오.

+1

@GrantWinney - 좋은 지적. 'BigInteger'가 OP의 필요성을 어떻게 처리 할 수 ​​있는지에 대한 더 많은 지침을 제공하는 라인이 추가되었습니다. –

+0

와우, 너는 많은 표를 던져. – Shahar