Java에서 BigDecimal을 Double로 변환하는 방법은 무엇입니까?


112

우리는 변환하는 방법 BigDecimalDouble자바? 나는 우리가 인수로 두 번을 사용해야 할 요구 사항을 가지고 있지만 우리는 점점 BigDecimal내가 변환해야하므로 BigDecimal으로 Double.


10
어때new BigDecimal(2).doubleValue()
마티아스

6
질문하기 전에 항상 설명서 를 읽으십시오 . 자주 질문에 대한 답변을 찾을 수 있습니다. 을 참조하십시오 doubleValue(). (힌트 : 특정 클래스에 대한 문서를 찾으려면 클래스 이름과 java를 차례로 검색하기 만하면됩니다. 예를 들어이 문서를 찾으려면 "BigDecimal Java"를 검색했습니다.)
Justin

1
"Double을 인수로 사용해야하는 요구 사항이 있습니다."요구 사항이 변경되었습니다. 사용에 아무 문제가 없다 BigDecimal당신은 엔드 - 투 - 엔드를 사용하지 않는 한 전혀은. 이 요구 사항은 정확성을 떨어 뜨립니다. 규정 준수를 손상시킬 수 있습니다. 조치 가능한 과실로 간주 될 수 있습니다.
Marquis of Lorne

왜 사용 Double하지 않고 double. 할 수있는 분야인가 null?
Peter Lawrey 2013 년

@EJP 사용 double은 그다지 나쁘지 않지만 대부분의 프로그램에 필요한 것보다 더 많은 표현 정확도가 15 자릿수 이상이기 때문에 버그 / 복잡성을 추가 할 가능성이 더 높기 때문에 BigDecimal을 사용하는 것은 의미가 없다는 데 동의합니다.
피터 Lawrey

답변:


225

doubleValue()BigDecimal 개체에서 double 값을 가져 오려면 메서드 를 사용해야 합니다.

BigDecimal bd; // the value you get
double d = bd.doubleValue(); // The double you want

안녕, 나는 똑같이 사용했지만 문제는 두 anser가 다르다는 것입니다. 내 십진수 출력은 13555261857.79이고 두 배로 변환했을 때 1.355526185779E10 .. 십진수를 두 배로 변환 한 후 동일한 출력을 얻으려면 어떻게해야합니까
user13926345

@ user13926345-둘 다 동일한 값입니다. 첫 번째 출력은 값의 정상적인 표현이고 다른 하나는 과학적 표현 입니다.
SudoRahul

35

BigDecimaldouble사용하여 변환 할 수 있습니다 .doubleValue(). 그러나 저를 믿으십시오. 통화 조작이 있으면 사용하지 마십시오. 항상 BigDecimal개체에 대해 직접 수행해야합니다 . 이러한 계산의 정밀도 손실은 통화 관련 계산에서 큰 시간 문제입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.