Ожидание точных результатов от двойной арифметики на компьютерах проблематично. Основная причина в том, что мы, люди, в основном используем базу 10, тогда как компьютеры обычно хранят числа в базе 2. Между ними есть проблемы с преобразованием.
Этот код будет делать то, что вы хотите:
public static void main(String[] args) {
BigDecimal x = BigDecimal.valueOf(17.0);
BigDecimal y = BigDecimal.valueOf(0.1);
BigDecimal remainder = x.remainder(y);
System.out.println("remainder = " + remainder);
final boolean divisible = remainder.equals(BigDecimal.valueOf(0.0));
System.out.println("divisible = " + divisible);
}