# Average of 3 numbers (included number rounding)

The following code snippet calculates the average of 3 numbers. The average is rounded by different rounding methods.

## Code Example

``````class AvgNumbers {
private static double roundDouble(double value, int decimalPoints) {
double d = Math.pow(10, decimalPoints);
return Math.round(value * d) / d;
}

public static void main(String[] args) {
// declare variables
double a, b, c, avg;

// initialize variables
a = 11.54;
b = 7.73;
c = 10.54;

avg = (a + b + c) / 3;

System.out.println("Average of " + a + ", " + b + " and " + c + " is: " + avg);
System.out.println("Rounded value:\n"
+ String.format("%1.2f", avg) + "\n"
+ Math.round(avg) + "\n"
+ roundDouble(avg, 2) + "\n");
}
}``````
##### Output
``````Average of 11.54, 7.73 and 10.54 is: 9.936666666666666
Rounded value:
9.94
10
9.94``````

### Code Explanation

`class AvgNumbers` declares a class named `AvgNumbers`.

`private static double roundDouble(double value, int decimalPoints)` is a private static method that takes two parameters: `value`, which is the number to be rounded, and `decimalPoints`, which specifies the number of decimal points to round to. This method uses the `Math.round()` function to round the value to the specified number of decimal points. It multiplies the value by 10 raised to the power of `decimalPoints`, performs the rounding, and then divides the result by 10 raised to the power of `decimalPoints` to obtain the rounded value.

`public static void main(String[] args)` is the main method of the program where the execution starts. It takes an array of strings as a parameter (although it is not used in this program).

The following lines declare and initialize variables:

``````double a, b, c, avg;
a = 11.54;
b = 7.73;
c = 10.54;``````

Here, `a`, `b`, and `c` are doubles representing the three numbers, and `avg` is a double to store the average.

`avg = (a + b + c) / 3;` calculates the average of the three numbers by adding them together and dividing the sum by 3. The result is stored in the `avg` variable.

The following lines print the average and demonstrate different rounding techniques:

``````System.out.println("Average of " + a + ", " + b + " and " + c + " is: " + avg);
System.out.println("Rounded value:\n"
+ String.format("%1.2f", avg) + "\n"
+ Math.round(avg) + "\n"
+ roundDouble(avg, 2) + "\n");``````

The first `System.out.println()` statement displays the average value using string concatenation.

The second `System.out.println()` statement demonstrates different ways to round the average value:

• `String.format("%1.2f", avg)` formats the average value with two decimal places using the `String.format()` method.
• `Math.round(avg)` rounds the average value to the nearest whole number using the `Math.round()` method.
• `roundDouble(avg, 2)` rounds the average value to two decimal places using the `roundDouble()` method defined earlier.