2012-01-03 4 views
2

Java에서 제곱근과 같은 비합리적인 수를 저장하는 가장 좋은 방법은 무엇입니까? 나는 정밀도 (100 자리 이상)가 필요하므로 float과 double은 좋지 않습니다. BigDecimal인가? 그 전에는 사용했지만 이상한 문제가 생겼습니다. 단지 제 코드 일뿐입니다. 내 코드는 매우 복잡하므로 BigDecimal이 다른 것들을 재 작업하기 전에 올바른 방법인지 확인하고 싶습니다.Java의 정확한 제곱근

+0

_Is bigDecimal? _ 예, 그렇습니다. –

+1

BigDecimal을 사용하여 테스트를 실행 했습니까? 문제를 문서화 할 수 있습니까? BigDecimal이 가장 효율적 일 필요는 없지만 잘못된 계산을하는 것을 본 적이 없습니다. – nmjohn

+0

http://stackoverflow.com/questions/7676521/storing-large-decimal-numbers-in-java – NinethSense

답변

1

JScience과 같은 것을 확인하십시오. 10 진수 클래스로 숫자와 그 뒤에 필요한 정밀도를 설정할 수 있습니다.

같은 것이 this입니다.

+0

다른 답변도 좋았지 만 이것이 나에게 가장 도움이되었습니다. 그런데 이제는 FloatingPoint라고 부릅니다. – user1126849

1

예, BigDecimal은 길입니다. 아주 안정적으로 작동합니다. 이상한 문제는 아마도 파일럿 오류 일 것입니다.

3

숫자가 모두 같은 연산 (예 : 모든 제곱근)에서 나온 경우 계산 된 결과 대신 소스 (예 : 사각형)를 저장할 수 있습니다. 숫자가 몇 가지 계산에서 오는 경우에, 당신은이 캡슐화 클래스를 만들 수 있습니다 SquareRoot, CubedRoot

예를 들어, √2 new SquareRoot(2)을 것, 그리고 그것의 필드 수 long 또는 double (2) 아마 것 transient 캐시 결과 (BigDecimal).

+0

실제 숫자가 필요했지만 이전에 명확하게 지정하지 않았을 수 있습니다. – user1126849