자바 부동 소수점 형 정밀도 연산

748 단어 자바
오늘 고객 은 내 보 낸 보고서 가 연산 에 있어 현저 한 오차 가 존재 한 다 는 것 을 발견 했다. 바로 다음 과 같다.
 
2305
4564.95
5270.1
8979
6162.9
1805
3055
1505
3105
1405
4329.35
1320
1805
1320
2355
1451
386
합치 면 51123.3 이지 만 프로그램의 결 과 는 51123.305 이 고 프로그램의 결 과 는 실제 결과 와 0.005 차이 가 납 니 다.
 
 
초보 자 에 게 자바 의 부동 소수점 연산 을 찾 아 보 겠 습 니 다.그 결과 자바 직접 부동 소수점 연산 에 위치 이동 계산 오차 가 존재 하 는 것 을 발견 하여 인터넷 의 해결 방법 을 참조 하여 작은 함 수 를 썼 다.
 
	private Float getFloatResult(float a, float b){
		BigDecimal f1= new BigDecimal(Float.toString(a));
		BigDecimal f2= new BigDecimal(Float.toString(b));
		return f1.add(f2).floatValue();
	}
 

좋은 웹페이지 즐겨찾기