[Java] n자리 소수점까지만 출력

자바에서 수를 계산할 때,

소수점의 자리 수를 원하는 만큼 출력해야하는 상황들이 각 업무적인 상황에 따라 생기게 된다.

 이때, 사용할 수 있는 기능들을 알아보고자 한다.

 

Q1. n자리 소수점 표시

방법 1 : result를 소수점 5자리까지 바로 출력하려면 아래와 같이 사용. 
System.out.printf("%.5f", result);

방법 2 : result를 소수점 3자리까지 변수에 담고 싶을때 아래와 같이 사용.
String.format("%.3f", result)

방법 3 : Math.round() 메소드를 이용한다.
(단, 아래는 10000.0으로 나누어서 소수점 5자리까지 표시되지만, 정수 10000으로 나누면 int형으로 나오게 된다)
Math.round(result * 10000) / 10000.0

방법 4 : DecimalFormat 클래스를 이용한다.
DecimalFormat df = new DecimalFormat("0.000");
String result = df.format(1523.1225411);


갑자기 자바에서 연산과 관련된 부분을 보다보니 궁금한게 생겼다.

 

Q2. 만약, 문자열 String과 정수 int를 더하면 어떻게 될까?

String str = "TEST";  //쌍따옴표를 사용한다
int num = 10;

System.out.println(str + num);
//정답은 "TEST10".
//왜냐하면, String과 연산시 문자열 연결된다

 

Q3. 그렇다면, 문자 Char와 정수 int를 더하면 어떻게 될까?

Char chr = 'T';  //그냥 따옴표를 사용한다
int num = 10;

System.out.println(chr + num);
//정답은 94.
//왜냐하면, Char와 숫자가 연산시 아스키코드로 치환되서 계산된다

 

Q4. 마지막으로, 문자 Char와 문자열 String를 더하면 어떻게 될까?

Char chr = 'T';
String str = "TEST";

System.out.println(chr + str); 
//정답은 404.
//왜냐하면 String과 연산은 무조건 문자열로 연결하고, Char로 인해 각 문자를 아스키코드 치환되어 계산된다