BigInteger
값을 Math.Log10
메서드와 함께 사용하려고합니다. BigInteger에서 소수 자릿수 계산
final BigInteger answerNo = fact;
final int digits = 1 + (int)Math.floor(Math.log10(answerNo));
불행하게도 컴파일러는
호환되지 않는 유형을 말한다.
int
을 BigInteger
으로 변경하면 여전히 좋아하지 않습니다.
BigInteger
값을 Math.Log10
메서드와 함께 사용하려고합니다. BigInteger에서 소수 자릿수 계산
final BigInteger answerNo = fact;
final int digits = 1 + (int)Math.floor(Math.log10(answerNo));
불행하게도 컴파일러는
호환되지 않는 유형을 말한다.
int
을 BigInteger
으로 변경하면 여전히 좋아하지 않습니다.
int
BigInteger
A를 할당 할 수 없습니다 - 당신은 쓸 수 : final BigInteger answerNo = BigInteger.valueOf(fact);
Mat.log10
가하는 double
기대하지 않는 BigInteger
당신은 정밀도의 손실이 괜찮다면 , 당신은 간단하게 복식을 사용할 수 있습니다 :
final int digits = 1 + (int)Math.floor(Math.log10(fact));
정밀도가 중요하다면, 로그를 수동으로 계산할 수 있습니다. 대신 간단하게 수행하여 log10
이 자리의 번호를 찾을 수 있습니다 일을
나는 질문하고 허용 대답의 정보를 준수하려면이 질문의 제목을 변경했습니다. 분명히 숫자를 계산하는 것은 실제 10 대수를 수행하는 것만 큼 정확하지 않습니다. –