2014-07-21 7 views
1

저는 과학적인 계산기를 C# Winform 응용 프로그램으로 만들고 있습니다. 그 안에는 함수 e^x의 계산에서 얻은 답을 저장하기 위해 double을 사용하고 있습니다. 그러나 double을 넘는다면 overflow 관련 에러를 나타내는 double 형 데이터 타입이 있습니다. C#에서 숫자를 저장하는 데 가장 큰 데이터 유형이 무엇인지 말해 줄 수 있습니까?숫자를 저장하는 데 가장 큰 데이터 형식

예 : 100!

+1

100을 넘으면 오버 플로우가 발생합니다. 두 배로. 약 9.3326215444e + 157의 결과는 유한 IEEE 754 64 비트 2 진수 범위 내에 있습니다. 물론, 정확히 이중으로 표현 될 수는 없습니다. –

답변

2

double은 C#에서 가장 큰 부동 소수점 정밀도 데이터 유형입니다. BigInteger이 있지만 BigFloat 또는 BigDouble이 아닙니다.

이 개 BigInteger의 사실에 BigRational의 구현은 Base Class Library on CodePlex에 그러나이있다 :이 웹 사이트에서

:

BigRational이 BigInteger를 기반으로

는 .NET 프레임 워크 4에서 소개 만들 수는 임의 정밀도의 유리수 형 유리수는 2 개의 정수 사이의 비율이며,이 구현에서 BigInteger는 분자와 분모에 사용됩니다. 다음과 같이

+0

@ user3831460 : 도움이 더 필요하십니까? –

-2
static void Main(string[] args) 
    { 
     Console.WriteLine("Geef een getal in?"); 
     double getal1 = Convert.ToDouble(Console.ReadLine()); 
     Console.WriteLine("Geef een tweede getal in?"); 
     double getal2 = Convert.ToDouble(Console.ReadLine()); 
     Console.WriteLine("Geef een derde getal in?"); 
     double getal3 = Convert.ToDouble(Console.ReadLine()); 

     if (getal1 > getal2 && getal1 > getal3) 
     { 
      Console.WriteLine(getal1 + "is het grootste getal"); 

     } 
     if (getal2 > getal1 && getal2 > getal3) 
     { 
      Console.WriteLine(getal2 + "is het grootste getal"); 
     } 
     if(getal3 > getal2 && getal3 > getal1) 
     { 
      Console.WriteLine(getal3 + "is het grootste getal"); 
     } 
    } 
+1

코드 pls을 설명하십시오. –

0

당신은 System.Numerics.BigInteger 데이터 형식을 사용하는 것이 좋습니다. 임의로 큰 부호있는 정수를 나타냅니다. 닷넷 프레임 워크에서 사용할 수있는 다양한 다른 숫자 데이터 유형을 관찰 했어야 했음에도 불구하고 사실상 전혀 제한이 없습니다. 자세한 내용은 here을 참조하십시오.

당신은 당신의 코드 파일의 맨 위에 네임 스페이스 아래에 C# 프로젝트에 System.Numerics.dll을 참조하여 포함 할 필요가이 구조를 사용하려면에서 원하는 참조를 추가하는 방법을

using System.Numerics; 

당신은에 this 게시물을 통해 갈 수 있습니다 당신이 어딘가에 갇히게되는 경우. 코드 아래

은 작동합니다

var aVeryVeryHugeNumber = System.Numerics.BigInteger.Parse("31415926535897932384626433832795"); 

당신은 심지어 아래 메시지와 함께 System.OverflowException 결과 ulong.Parse와 수를 나타내는 등 큰 문자열을 구문 분석하려고하면 :

값이 너무 커서 중 하나 또는 UInt64에 비해 너무 작습니다.

관련 문제