[Java] 소수점 둘째자리까지 반올림, 4가지 방법
June 10, 2024
float 또는 double을 소수점 둘째자리까지 반올림하는 방법에 대해서 알아보겠습니다. 이것을 응용하여 소수점 n자리까지 반올림하도록 구현할 수 있습니다.
1. String.format()을 이용한 방법
String.format("%.2f", number)
처럼 숫자 number를 소수점 2자리까지 표시할 수 있습니다.
%.nf
는 소수점 n자리까지 표시하며, n+1 자리에서 반올림
public class Example {
public static void main(String[] args) {
double number = 3.456;
String formattedNumber = String.format("%.2f", number);
System.out.println(formattedNumber);
}
}
Output:
3.46
2. Math.round()를 이용한 방법
Math.round(n)
는 숫자 n을 반올림하여 정수로 만듭니다. 소수점 3자리 이상 있는 실수를 2자리까지 반올림하려면, 숫자에 100을 곱하고 round()
로 반올림하고 다시 100으로 나누면 됩니다.
- 예를 들어,
3.456 * 100 = 345.6
이고,round(345.6) = 346
이 됩니다. 다시 100으로 나누면346 / 100 = 3.46
이 됩니다.
public class Example {
public static void main(String[] args) {
double number = 3.456;
double roundedNumber = Math.round(number * 100.0) / 100.0;
System.out.println(roundedNumber);
}
}
Output:
3.46
3. DecimalFormat을 이용한 방법
new DecimalFormat("#.##")
: 소수 2자리까지 반올림하는 포맷df.format(number)
: 소수 2자리까지 반올림하여 결과를 문자열로 리턴Double.parseDouble(df.format(number))
: 소수 2자리까지 반올림된 문자열을 double로 변환
import java.text.DecimalFormat;
public class Example {
public static void main(String[] args) {
double number = 3.456;
DecimalFormat df = new DecimalFormat("#.##");
double roundedNumber = Double.parseDouble(df.format(number));
System.out.println(roundedNumber);
}
}
Output:
3.46
4. BigDecimal을 이용한 방법
아래와 같이 BigDecimal을 이용하여 소수점 2자리까지 반올림할 수 있습니다.
bd.setScale(2, BigDecimal.ROUND_HALF_UP)
: 소수점 2자리까지 반올림bd.doubleValue()
: BigDecimal을 double로 변환
import java.math.BigDecimal;
public class Example {
public static void main(String[] args) {
double number = 3.456;
BigDecimal bd = new BigDecimal(number);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP); // 둘째 자리 반올림
double roundedNumber = bd.doubleValue();
System.out.println(roundedNumber);
}
}
Output:
3.46