자바 향상 편 - 자바 의 반올림 과 보존 위치
public static void main(String[] args) {
System.out.println("12.5 :" + Math.round(12.5));
System.out.println("-12.5 :" + Math.round(-12.5));
}
Output:
12.5 :13
-12.5 :-12 이것 은 반올림 의 전형 적 인 사례 이자 우리 가 학교 모집 에 참가 할 때 자주 만 나 는 것 이다.이 결과 에서 우 리 는 이 두 절대 치가 같은 숫자 를 발 견 했 는데, 왜 근사치 가 다 를 까?사실 이것 은 Math. round 가 채택 한 반올림 규칙 과 결정 된다.
반올림 은 사실 금융 방면 에서 매우 많이 운용 되 는데, 특히 은행 의 이자 가 그렇다.우 리 는 모두 은행 의 이윤 창 출 경 로 는 주로 금 리 차 라 는 것 을 알 고 있다. 그것 은 예금주 에 게 서 자금 을 수집 한 다음 에 대출 을 해 주 는 것 이다. 그 동안 발생 하 는 금 리 차 는 바로 은행 이 얻 은 이윤 이다.만약 에 우리 가 평소에 반올림 하 는 규칙 을 채택 한다 면 여 기 는 10 건의 예금 이자 계산 을 모델 로 한다. 다음 과 같다.
사사: 0.000, 0.001, 0.002, 0.003, 0.004.이 집 들 은 모두 은행 에서 번 돈 이다.
5 입: 0.005, 0.006, 0.007, 0.008, 0.009.이것들 은 모두 은행 이 손 해 를 본 돈 으로 각각 0.005, 0.004, 0.03, 0.002, 0.001 이다.
그래서 은행 에 있어 서 그의 이윤 은 0.000 + 0.001 + 0.002 + 0.003 + 0.004 - 0.005 - 0.003 - 0.002 - 0.001 = - 0.0005 가 되 어야 한다.결과 에서 알 수 있 듯 이 10 건 당 이자 은행 은 0.005 위안 의 손실 을 볼 수 있 으 니 절대 이 숫자 를 얕 보지 마라. 이것 은 은행 에 있어 서 매우 큰 손실 이다.이 문제 에 직면 하여 다음 과 같은 은행 가 섭외 법 이 생 겼 다.이 알고리즘 은 미국 은행 가 들 이 제기 한 것 으로 주로 위의 반올림 규칙 을 사용 하여 발생 하 는 오 차 를 수정 하 는 데 쓰 인 다.다음 과 같다.
버 리 는 위치의 수치 가 5 보다 적 으 면 바로 버린다.
버 리 는 위치의 수치 가 5 보다 크 면 들 어간 후에 버린다.
버 리 는 자리 의 수치 가 5 와 같 을 때 5 뒤에 0 이 아 닌 수치 가 있 으 면 들 어간 후에 버 리 고 5 뒤에 0 이 있 으 면 5 앞 자리 의 패 리 티 에 따라 홀수 가 들 어가 고 짝수 가 떨어진다 고 판단 한다.
위의 규칙 에 대해 우 리 는 예 를 들 어 설명 한다.
11.556 = 11.56 --- 6 입
11. 554 = 11. 55 --- 4 사
5 후 유수 진
11.545 = 11.54 - 5 후 무수, 앞 자리 가 짝수 라면 버 려 야 한다
11.555 = 11.56 - 5 후 무수, 만약 전위 가 홀수 라면 반드시 진입 해 야 한다
다음 실례 는 은행 가 반올림 법 을 사용 하 는 것 이다.
public static void main(String[] args) {
BigDecimal d = new BigDecimal(100000); //
BigDecimal r = new BigDecimal(0.001875*3); //
BigDecimal i = d.multiply(r).setScale(2,RoundingMode.HALF_EVEN); //
System.out.println(" :"+i);
}
Output:
:562.50 위 에서 은행 가 반올림 법 을 간단하게 소개 하 였 으 며, 현재 자바 는 7 중 반올림 법 을 지원 합 니 다.
1、 ROUND_UP: 0 방향 에서 벗 어 나 반올림.절대 값 이 가장 큰 방향 으로 반올림 하고 자 리 를 버 리 면 0 이 아니면 바로 들 어 갑 니 다.
2、 ROUND_DOWN: 제로 방향 으로 반올림.절대 값 이 가장 작은 방향 으로 입력 하면 모든 위 치 를 버 리 고 진 위 는 존재 하지 않 습 니 다.
3、 ROUND_CEILING: 무한 한 방향 으로 반올림.정 최대 방향 으로 접근 하 다.정수 라면 반올림 행 위 는 ROUND 와 유사 합 니 다.UP, 마이너스 라면 반올림 행 위 는 ROUND 와 유사 합 니 다.DOWN。Math. round () 방법 은 이 모드 를 사용 합 니 다.
4、 ROUND_FLOOR: 마이너스 무한 방향 으로 반올림.마이너스 무한 방향 으로 접근 하 다.정수 라면 반올림 행 위 는 ROUND 와 유사 합 니 다.DOWN;마이너스 라면 반올림 행 위 는 ROUND 와 유사 합 니 다.UP。
5、 HALF_UP: 최근 숫자 반올림 (5 진).이것 은 우리 의 가장 전형 적 인 반올림 이다.
6、 HALF_DOWN: 요즘 숫자 반올림 (5 사).여기 서 5 는 버 려 야 한다.
7、 HAIL_EVEN: 은행 가 반올림 법.
반올림 하면 보존 위치 가 없어 서 는 안 됩 니 다. 자바 연산 에서 우 리 는 여러 가지 방식 으로 보존 위 치 를 실현 할 수 있 습 니 다.
보존 비트
방법 1: 반올림
double f = 111231.5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, RoundingMode.HALF_UP).doubleValue(); 여기에 BigDecimal 을 사용 하고 setScale 방법 으로 정확 도 를 설정 하 며 RoundingMode. HALF 를 사용 합 니 다.UP 는 최근 의 숫자 반올림 법칙 을 사용 하여 근사치 계산 을 한다 고 밝 혔 다.여기 서 빅 디 밀 과 반올림 이 절묘 한 조합 임 을 알 수 있다.
방식 2:
java.text.DecimalFormat df =new java.text.DecimalFormat(”#.00″);
df.format( ); 예: new java. text. DecimalFormat ("\ #.00 〃). format (3.1415926)
#.00 은 두 개의 소 수 를 나타 낸다.
방식 3:
double d = 3.1415926;
String result = String .format(”%.2f”);
%.2f %. 2 f 。 방식 4:
또한 struts 탭 을 사용 하여 출력 하면 format 속성 이 있 습 니 다. format = "0.00" 으로 설정 하면 두 개의 소 수 를 유지 합 니 다.
예 를 들 면:
<bean:write name="entity" property="dkhAFSumPl" format="0.00" />
<fmt:formatNumber type="number" value="${10000.22/100}" maxFractionDigits="0"/>
maxFractionDigits
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.