BigDecimal Class을 읽었지만 컴퓨터 메모리에 값을 저장하는 방법에 대한 정보를 찾을 수 없었습니다.BigDecimal은 어떻게 구현됩니까?
이 정보를 제공 할 수있는 신뢰할 수있는 출처가 있습니까?
BigDecimal Class을 읽었지만 컴퓨터 메모리에 값을 저장하는 방법에 대한 정보를 찾을 수 없었습니다.BigDecimal은 어떻게 구현됩니까?
이 정보를 제공 할 수있는 신뢰할 수있는 출처가 있습니까?
자릿수가 long에 들어가기에 충분하면 숫자의 유효 자릿수는 long에 저장되며, 그렇지 않으면 BigInteger에 저장됩니다. 또, BigDecimal에는, scale and precision을 나타내는 int 프리미티브가 있습니다. 소수점 이하의 유효 자리수를 나타내는 스케일과 그 수에 포함되는 유효 자리수를 나타내는 정밀도를 나타냅니다.
BigDecimal의 스케일되지 않은 값은 BigInteger에 저장됩니다. precision and scale 정수 필드 별도로 저장된다
BigInteger intVal
int scale
int precision
BigInteger 저장 정수를 32 개 비트 정수 big-endian 배열하고, 다른 32 비트 정수로서 개별적으로 서명한다.
int signum
int[] mag
그러나 Muhd 말한대로 수를 64 비트 정수에 들어갈 수 있다면, 다음이 대신 BigInteger를 사용됩니다.
자바는 오픈 소스입니다. 나는 그것의 [소스 코드] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147/java/math/BigDecimal.java/)를 살펴보기 만하면된다. . – BalusC
좋아요,하지만 Java가 소스 코드에서 어떻게 작동하는지 배우는 것은 좋지 않습니다. –
소스를 읽는 것이 Java에서 더 좋은 방법 중 하나입니다. – trashgod