나는 총 초보자입니다. BigInteger 구조체를 사용하는 SharpDevelop에 C# 프로그램을 만들었습니다. 난 그냥 처음 5 개 것들을 넣어했지만, 실제로 1000 큰 정수가 있습니다 :SharpDevelop가 왜이 오류를 반환합니까? 'double'및 'System.Numerics.BigInteger'유형의 피연산자에 연산자 '/'를 적용 할 수 없습니까?
using System;
using System.Numerics;
using System.Linq;
namespace HCC
{
class Program
{
public static void Main(string[] args)
{
BigInteger[] HCC = new[]
{
BigInteger.Parse("2"),
BigInteger.Parse("4"),
BigInteger.Parse("6"),
BigInteger.Parse("12"),
BigInteger.Parse("24"),
};
double S;
int i;
S=0;
for(i=0; i<HCC.Length; i++)
{
S=S+1.0/HCC[i];
}
Console.Write(""+S);
Console.ReadKey(true);
}
}
}
참고 :
는 여기있다. 그리고 일부는 70 자리가 넘습니다.
S=S+1.0/HCC[i];
이 무엇을 의미 하는가 :
Operator '/' cannot be applied to operands of type 'double' and 'System.Numerics.BigInteger' (CS0019)
그것은이 라인을 기준으로 :
문제는 SharpDevelop이 오류가 표시된다는 점이다? 이것은 BigIntegers에 대해 더하기, 곱하기 및 나눗셈과 같은 기본 연산을 수행 할 수 없다는 것을 의미합니까?
가장 중요한 것은 다음과 같습니다. 어떻게이 문제를 해결할 수 있습니까?
아니요, 그렇다고해서 그것이 정확히 말하는 것을 의미하지는 않습니다 : 'BigInteger'로 'double'을 나눌 수 없습니다. 그것을 해결하는 방법에 관해서는 : 근사치 또는 정확한 결과에 관심이 있습니까? 만약 이전에'BigInteger'를 사용하고있는 특별한 이유가 있습니까? 후자의 경우, 귀하의 접근 방식을 다시 생각해야합니다. 'BigInteger'라는 이름이 이미 클래스가 분수를 지원하지 않는다고 알려주고 있다고 생각 했습니까? – hvd
@hvd : 실제 결과에 무한 십진수 표현이 있기 때문에 완전히 정확한 결과는 없습니다. 하지만 저는 정말로 정확한 결과를 원합니다. 최소 7 자리 숫자를 찾고 있습니다. BigInteger를 사용하고 있는데 계산을 수행하는 데 사용하는 정수가 매우 큽니다 (일부는 70 자리 이상). – user50746
분수로 표현할 수있는 완전히 정확한 결과가있을 수 있습니다. 그러나 ~ 7 자리가 충분하다면, 모든 것을 (정확히 ~ 15 자리의 정밀도를 가짐)'double '을 사용합니다. 70 자리 정수 중 마지막 자리수는 큰 차이가 없습니다. – hvd