I have the following situation, when I give e.g. one number 10.55000, this number is rounded correctly to 10.55, then after adding 10.5501, everything is also fine because I get 21.1001, but in the next stage, when I add the number 10.55 I get the following result: 31.6501000001, and I should receive 31.6501. What should I do to get in stage 3 of 31.6501 instead of 31.6501000001.
This is my Numbers class:
class Numbers {
private double result;
private double currentNumber;
public void calculateResult (double number) {
currentNumber = number;
result += currentNumber ;
}
public String getResult() {
DecimalFormat decimalFormat = new DecimalFormat("#.##########");
decimalFormat.setRoundingMode(RoundingMode.CEILING);
return decimalFormat.format(result);
}
}
This is my main method:
Numbers numbers = new Numbers();
numbers.calculateResult(10.55000);
System.out.println(numbers.getResult());
numbers.calculateResult(10.5501);
System.out.println(numbers.getResult());
numbers.calculateResult(10.55);
System.out.println(numbers.getResult());