BigDecimal 크기 비교 문제
1244 단어 자바
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 같다 ... 보다 크다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.