큰 숫자 나 작은 숫자가 포함 된 계산을 만들어 매우 크거나 작은 숫자가됩니다.Java에서 너무 큰 수와 너무 적은 수에 대해 매우 높은 정밀도를 얻으려면 어떻게해야합니까?
지금 내가 신경 쓰는 건 일을 가능한 정확하게 수행하는 방법입니다..
내가 구글 계산기이 계산을하려고하면 1000^10 = 1E + 내가 BigDecimal을 사용하여 동일한 계산을하려고 할 때, 나는 다른 결과를 얻었다
1000000000000000000000000000000로 읽을 수 30 !
BigDecimal bigNumber = new BigDecimal(Math.pow(1000, 10));
System.out.println(bigNumber);
1000000000000000019,884,624,838,656
나는 그것이 과학적 표기법을 사용하지 않고 나에게 숫자의 전체 범위를 제공하지만 마지막에 몇 가지 여분의 쓰레기 번호를 제공하는 것이 행복
.BigDecimal에 국한되지 않음에 유의하십시오. 나는 어쨌든 정밀도에 관심이 있습니다.
그래서 Java에서 너무 큰 수와 너무 적은 수에 대해 매우 높은 정밀도를 얻으려면 어떻게해야합니까?
당신은하지 않았다 '사용하여 동일한 계산을 시도'BigDecimal.'는'당신은 부동 소수점에서 같은 계산을했고, * 다음 * * 표시 결과를 변환 *에 BigDecimal입니다. – EJP
BigDecimal을 사용해야합니다. 'double'에서 계산을하고 BigDecimal로 변환해도 마술처럼 정확하지 않습니다. –