2012-12-13 1 views
1

특정 수학 연산과 유형 double에 관한 문제를 읽었습니다. 그러나 언제 발생할지, 어떻게 처리해야 하는지를 잊어 버립니다.Bitcoin의 소수 자릿수 8 자리를 사용하여 C#에서 Double 형식의 문제가 언제 발생합니까?

"Bitcoin"은 소수점 이하 8 자리를 갖는 부동 소수점입니다. 나는 그들이 다른 타입 (십진수 등)이 아닌 double을 입력한다고 가정하고있다. 이 올바른지?

소수점 8 자리를 사용하는 응용 프로그램을 작성, 디버그 및 테스트 할 때 고려해야 할 다른 사항은 무엇입니까?

+4

소수점 8 자리를 원하면 float을 사용하지 않는 것이 좋습니다. –

+0

아 ... 맞아요. 더블이 필요합니다. – LamonteCristo

+0

글쎄, 저도 그 자리에 있었는데 ... 소수점 이하 여야합니다. 선심을 감사하러 왔어요! – LamonteCristo

답변

6

돈으로 무엇이든 할 경우 decimal을 사용해야합니다. 숫자의 크기에 따라 소수점 이하 8 자리가되기 전에 정확도 문제가 발생하게됩니다.

고정 된 공간 (유효 숫자)이 있으므로 float은 9000에서 10,000 사이의 수 (말)보다 정확하게 -1에서 +1 범위의 숫자를 나타낼 수 있습니다.

Float only has 7 digits of precision 이것은 소수점 이하 8 자리를 나타낼 수 없다는 것을 의미합니다.

Double has 15-16 digits of precision 더 정확하지만 아직 큰 값의 통화 계산에는 충분히 정확하지 않습니다.

전화 번호가 float 인 경우 오해의 소지가 있습니다. 아마도 float이 하나 인 "부동 소수점 유형"을 의미 할 것입니다.

3

특히 통화를 취급 할 때 소수점 이하 자릿수와 정확도가 염려되는 경우 decimal이 아닌 float 또는 double을 사용해야합니다.

관련 문제