2009-08-19 3 views

답변

14

BigInteger 클래스를 사용하면; J # 라이브러리 (C#에서 확실히 액세스 할 수 있음), F # (테스트 중 하나)에서 또 하나가 있으며 순수 C#에서 독립 실행 형 구현 such as this one이 있습니다.

+0

또한 주목할 가치가 있습니다 - 파이썬과 루비의 무한 정밀도 정수를 지원하는 DLR의 또 다른 구현이 있지만 그 클래스에 대한 공개 API가 무엇인지 살펴 보지 않았습니다. –

1

10 진수는 더 큰 범위를가집니다.

.NET 4.0에서는 bigInteger가 지원되지만 아직 베타 버전이 아닙니다.

16

.NET 4.0 베타를 사용할 수 있습니까? 그렇다면 BigInteger을 사용할 수 있습니다.

그렇지 않으면 28 자리 숫자를 고수하는 경우 decimal을 사용할 수 있습니다.하지만 분명히 소수점 산술 연산을 수행하므로 보상을 위해 여러 곳에서 둥근해야 할 수도 있습니다.

+0

네임 스페이스 문제가있는 사람은 누구나 System.Numerics에 있습니다. – Adrian

1

큰 정수로 계산하기위한 라이브러리가 여러 개 있습니다. 대부분의 암호화 라이브러리 또한이를위한 클래스를 제공합니다. 무료 라이브러리는 this을 참조하십시오.

0

decimal을 사용할 수 있습니다. Int64보다 큽니다.

28-29 자릿수입니다.

7

이 숫자를 사용하고자하는 것은 무엇입니까? 정말 큰 숫자로 계산을하는 경우에도 마지막 숫자까지 정확도가 필요합니까? 그렇지 않으면 부동 소수점 값 사용을 고려해야합니다. 그것들은 거대 할 수 있습니다. 더블 타입의 최대 값은 1.79769313486231570E + 308입니다 (과학적 표기법에 익숙하지 않다면 1.79769313486231570에 10000000 ... 0000 - 308의 0을 곱한 것을 의미합니다). 대부분의 응용 프로그램

+0

OP가 정수를 지정하지 않았다는 점을 감안하면 아무도이 사실을 언급하지 않았다는 사실에 놀라움을 금치 못했습니다. –

3

BigInteger 충분히 커야한다

은 임의의 큰 정수를 나타냅니다.

using System.Numerics; 

var a = BigInteger.Parse("91389681247993671255432112000000"); 
var b = new BigInteger(1790322312); 
var c = a * b; 
관련 문제