저는 과학적인 계산기를 C# Winform 응용 프로그램으로 만들고 있습니다. 그 안에는 함수 e^x의 계산에서 얻은 답을 저장하기 위해 double을 사용하고 있습니다. 그러나 double을 넘는다면 overflow 관련 에러를 나타내는 double 형 데이터 타입이 있습니다. C#에서 숫자를 저장하는 데 가장 큰 데이터 유형이 무엇인지 말해 줄 수 있습니까?숫자를 저장하는 데 가장 큰 데이터 형식
예 : 100!
저는 과학적인 계산기를 C# Winform 응용 프로그램으로 만들고 있습니다. 그 안에는 함수 e^x의 계산에서 얻은 답을 저장하기 위해 double을 사용하고 있습니다. 그러나 double을 넘는다면 overflow 관련 에러를 나타내는 double 형 데이터 타입이 있습니다. C#에서 숫자를 저장하는 데 가장 큰 데이터 유형이 무엇인지 말해 줄 수 있습니까?숫자를 저장하는 데 가장 큰 데이터 형식
예 : 100!
double
은 C#에서 가장 큰 부동 소수점 정밀도 데이터 유형입니다. BigInteger
이 있지만 BigFloat
또는 BigDouble
이 아닙니다.
이 개 BigInteger
의 사실에 BigRational
의 구현은 Base Class Library on CodePlex에 그러나이있다 :이 웹 사이트에서
:
BigRational이 BigInteger를 기반으로
는 .NET 프레임 워크 4에서 소개 만들 수는 임의 정밀도의 유리수 형 유리수는 2 개의 정수 사이의 비율이며,이 구현에서 BigInteger는 분자와 분모에 사용됩니다. 다음과 같이
@ user3831460 : 도움이 더 필요하십니까? –
수있는 값을 가진 데이터 유형은 다음과 같습니다
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");
}
}
코드 pls을 설명하십시오. –
당신은 System.Numerics.BigInteger
데이터 형식을 사용하는 것이 좋습니다. 임의로 큰 부호있는 정수를 나타냅니다. 닷넷 프레임 워크에서 사용할 수있는 다양한 다른 숫자 데이터 유형을 관찰 했어야 했음에도 불구하고 사실상 전혀 제한이 없습니다. 자세한 내용은 here을 참조하십시오.
당신은 당신의 코드 파일의 맨 위에 네임 스페이스 아래에 C# 프로젝트에 System.Numerics.dll
을 참조하여 포함 할 필요가이 구조를 사용하려면에서 원하는 참조를 추가하는 방법을
using System.Numerics;
당신은에 this 게시물을 통해 갈 수 있습니다 당신이 어딘가에 갇히게되는 경우. 코드 아래
은 작동합니다
var aVeryVeryHugeNumber = System.Numerics.BigInteger.Parse("31415926535897932384626433832795");
당신은 심지어 아래 메시지와 함께 System.OverflowException
결과 ulong.Parse
와 수를 나타내는 등 큰 문자열을 구문 분석하려고하면 :
값이 너무 커서 중 하나 또는 UInt64에 비해 너무 작습니다.
100을 넘으면 오버 플로우가 발생합니다. 두 배로. 약 9.3326215444e + 157의 결과는 유한 IEEE 754 64 비트 2 진수 범위 내에 있습니다. 물론, 정확히 이중으로 표현 될 수는 없습니다. –