2011-11-16 2 views
2

가까운 장래에 가능한 프로그래밍 재미를 위해 10 진수 형식을 살펴 봤는데 Int64보다 큰 정수로 사용하고 싶습니다. 한 가지 요점은 내가 정밀도를 잃지 않고 안전하게 10 진수로 저장할 수있는 가장 큰 정수를 찾아야한다는 것이다. 외관상으로는 부동 소수점을 사용하고 프로그래머는 부동 소수점에서만 사용할 수있는 사랑을 알기 때문에 이것을 말합니다.C# : Decimal -> 정확히 저장할 수있는 가장 큰 정수

그래서 누구나 내가 들어갈 수있는 가장 큰 정수를 알고 있습니까?

그리고 별도의 메모에 누군가 long/int 배열을 가지고 노는 경험이 있습니까? 이 프로젝트 다음 프로젝트입니다.

감사합니다, -R

+3

['Decimal.MaxValue'] (http://msdn.microsoft.com/en-us/library/system.decimal.maxvalue.aspx)와 비슷합니까? – user7116

+0

당신이 물어 보려고하는 것을 만들 수 없습니다. 지금까지 아무 것도 시작하지 않았 니? 이 일을 위해 당신이 한 것을 볼 수 있습니까? 영어가 더 훌륭하고 포괄적 일 수 있습니까? – Kangkan

+1

@ Kangkan : 질문은 상당히 명확하게 작성되었습니다. – Blender

답변

7

decimal 작품 다르게 및 double를 나타냅니다 - 항상으로, 지금까지의 정수 정밀도로 저장하기에 충분한 정보를 가지고 최대 지수는 28이며 28-29 자리의 정밀도를가집니다. 차이점을 더 자세히 살펴 보려면 .NET에서 decimal floating pointbinary floating point에 대한 내 기사에 관심이있을 수 있습니다.

정확도를 유지하면서 [decimal.MinValue, decimal.MaxValue] 범위의 정수를 저장할 수 있습니다.

보다 넓은 범위를 원할 경우 Fredrik이 언급 한대로 BigInteger을 사용해야합니다 (물론 .NET 4를 사용한다고 가정 할 때 ... 이전 버전의 .NET에서 사용할 수있는 제 3 자 버전이 있다고 생각합니다) .

+0

아주 좋습니다. 이전에 십진수 데이터 유형의 분류에 관한 정보를 읽었으며 무언가를 놓쳤을 수도 있다는 것에 다소 걱정이되었습니다. – user978122

+0

처음에했던 것처럼 BigInteger 클래스를 찾지 못했다면 [System.Numerics] (http://msdn.microsoft.com/en-us/library/system.numerics)에 대한 참조를 추가해야합니다. .aspx) – Arvin

3

당신이 큰 정수 처리하려면 , 당신은 BigInteger 유형을 조사 할 수 있습니다. 문서에서

:

은 임의의 큰 부호있는 정수

float
+0

아주 좋네요. 그것은 흥미롭고 새로운 것입니다 (Framework 4.0). – user978122