'소수점'에 해당되는 글 2건

  1. 2010.03.15 [Java] 실수형 소수점
  2. 2009.03.05 소수점 표시
Programming/JAVA2010.03.15 19:13

실수형 데이터에서 소수점을 제한해서 표현하고 싶을때!!!!

예를 들어 소수점 둘째 자리까지만 표기하고 싶을때!! 

그럴때 사용하는 함수가 있습니다. DecimalFormat

여기에 간단한 사용법을 남김과 동시에 버릴 소수점을 어떻게 처리하는지도 비교할수 있도록 같이 올립니다.

setRoundingMode 메소드가 처리하는 방법을 설정하는 함수 입니다.


import java.math.RoundingMode;
import java.text.DecimalFormat;

public class Test {
	public static void main(String[] args) {
		DecimalFormat df = new DecimalFormat("0.##");
		double num[] = {1.977, 1.975, 1.972};
		RoundingMode[] modes = {RoundingMode.UP, RoundingMode.DOWN, RoundingMode.CEILING, RoundingMode.FLOOR, RoundingMode.HALF_UP, RoundingMode.HALF_DOWN, RoundingMode.HALF_EVEN};
		
		for(int n=0; n<3; n++){
			System.out.println("number : "+num[n]);
			
			for(int i=0; i<7; i++){
				df.setRoundingMode(modes[i]);
				System.out.println(modes[i]+" : "+df.format(num[n]));
			}
			
			System.out.println();
		}
	}
}


출력결과

number : 1.977
UP : 1.98
DOWN : 1.97
CEILING : 1.98
FLOOR : 1.97
HALF_UP : 1.98
HALF_DOWN : 1.98
HALF_EVEN : 1.98

number : 1.975
UP : 1.98
DOWN : 1.97
CEILING : 1.98
FLOOR : 1.97
HALF_UP : 1.98
HALF_DOWN : 1.97
HALF_EVEN : 1.98

number : 1.972
UP : 1.98
DOWN : 1.97
CEILING : 1.98
FLOOR : 1.97
HALF_UP : 1.97
HALF_DOWN : 1.97
HALF_EVEN : 1.97




자세한 사항은 http://java.sun.com/javase/7/docs/api/java/text/DecimalFormat.html 여기서 확인 하세요....

신고
Posted by 초프(초보 프로그래머)
Programming/JAVA2009.03.05 02:08

float형에서 System.out.print 로 출력할 경우 소수점아래가 꽤 많이 나온다.

이걸 줄이는 방법이 다음과 같다.

import java.text.NumberFormat;

이건 c의 include랑 비슷한것임

실행코드는 아래와 같음

NumberFormat nf = NumberFormat.getInstance();   // 객체 인스턴스생성
nf.setMaximumFractionDigits(1);    // 최대 소수점 자리수
nf.setMinimumFractionDigits(1);     // 최소 소수점 자리수
System.out.print(nf.format(std[0].getAverage()));      // 위에 설정한 소수점 포맷으로 적용해서 출력


처음에 이걸 검색해서 찾았는데도.. 잘못썼었다.

nf.setMinimumFractionDigits(std[0].getAverage());

이렇게 하면 소수점 포맷이 바뀔줄 알았던것이다 -_-;;

신고
Posted by 초프(초보 프로그래머)