How to round a number to n decimal places in Java

There are several ways to round a number to n decimal places in Java:

  1. Using DecimalFormat:

You can use the DecimalFormat class to round a number to a specific number of decimal places. Here's an example:

double number = 123.4567;
int decimalPlaces = 2;
DecimalFormat df = new DecimalFormat("#." + String.format("%0" + decimalPlaces + "d", 0).replace("0","#"));
System.out.println(df.format(number));

This will output 123.46.

  1. Using String.format:

You can use the String.format method to round a number to a specific number of decimal places. Here's an example:

double number = 123.4567;
int decimalPlaces = 2;
String formattedNumber = String.format("%." + decimalPlaces + "f", number);
System.out.println(formattedNumber);

This will output 123.46.

  1. Using Math.round:

You can use the Math.round method to round a number to the nearest integer, and then divide the result by a power of 10 to get the number rounded to the desired number of decimal places. Here's an example:

double number = 123.4567;
int decimalPlaces = 2;
double factor = Math.pow(10, decimalPlaces);
double roundedNumber = (double) Math.round(number * factor) / factor;
System.out.println(roundedNumber);

This will output 123.46.