Почему в двух примерах при подсчете среднего наблюдается ошибка? Java
Пример взят из книги Герберт Шилдт. Java 8. Полное руководство. Девятое издание. 2015. на странице 701. сам код
import java.util.*;
public class AvgNums {
public static void main(String[] args) {
Scanner conin = new Scanner (System.in);
int count = 0;
double sum = 0.0;
System.out.println("Введите числа для подсчета среднего.");
// читать и суммировать числовые значения
while (conin.hasNext()) {
if (conin.hasNextDouble()) {
sum += conin.nextDouble();
count++;
}
else {
String str = conin.next();
if (str.equals("=")) break;
else {
System.out.println("Ошибка формата данных.");
return;
}
}
}
conin.close();
System.out.println("Сумма " + sum + "\nКоличество " + count);
System.out.println("Среднее равно " + sum / count);
}
}
если подсчитать в примере числа 1,3 1 1 - получится что среднее равно 1.0999999999999999. Такое же среднее и для 1,6 1 1 1 1 1 - 1.0999999999999999. ДЛя прочих примеров все точно. Так же если ввести числа для подсчета среднего: 1,1 1,1 1,1 Сумма 3.3000000000000003 Количество 3 Среднее равно 1.1
Как происходят преобразования при которых только некоторые примеры имеют погрешности? (про периодические числа и перевод из десятичной системы в двоичную прочитал, но не ясно почему ошибка только для некоторых примеров)