BigDecimal 크기 비교 문제

1244 단어 자바
BigDecimal 크기 비교   이 클래스 는 자바 에서 정확하게 계산 한 클래스 입 니 다. 다음은 두 개의 BigDecimal 대상 의 크기, 동일 한 판단 을 말씀 드 리 겠 습 니 다.   1 대상 이 동일 한 지 비교     일반적인 대상 은 같 지만 BigDecimal 은 특수 합 니 다. 예 를 들 어:
     BigDecimal a1 = new BigDecimal(1.0);
     BigDecimal b1 = BigDecimal.valueOf(1.000);

 현실 에서 이 두 숫자 는 같 지만 a. equals (b) 또는 a = = b 를 사용 하면 결국 모두 false 로 돌 아 왔 습 니 다.       (b) 결 과 는 가짜다.왜 안 같 지?equals 는 내용 을 비교 하 는 것 이 고 비교 문자 가 메모리 주 소 를 비교 하 는 것 과 같 기 때문에 '1.0' 과 '1.000' 의 내용 은 당연히 다 릅 니 다. 또한 2 개의 서로 다른 대상 이 고 메모리 주소 도 다 릅 니 다.     해결 방법:            if (a. com pareto (b) = = 0) 결 과 는 true     public int compareTo(BigDecimal val)          이 BigDecimal 을 지정 한 BigDecimal 과 비교 합 니 다.           두 BigDecimal 대상 의 가 치 는 같 지만 다른 것 을 가지 고 있 습 니 다.         비례 (예 를 들 어 2.0 과 2.00) 는 같은 방법 으로 여 겨 진다.         우선         여섯 개의 불 비교 연산 자 (, > =,! =, < =) 중의 모든 방법.         이러한 비 교 를 수행 하 는 데 사용 되 는 제안 성 어 는: (x. compare To (y) 0) 이 며, 그 중 6 개의 비교 연산 자 중 하나 입 니 다.
    방법 정의:    compare To 는 Comparable 에 정의 합 니 다.      인자:    val - BigDecimal 은 이 BigDecimal 과 비교 해 야 합 니 다.    돌아 가기:       -1, 0 또는 1 은 BigDecimal 수치 가 val 보다 작 거나 크기 때 문 입 니 다.    간단 한 번역:           결 과 는... - 1 보다 작 아 요.   0  같다  ... 보다 크다

좋은 웹페이지 즐겨찾기