Результат:
-1
0
мог бы быть объяснен, если indexOf () не смог найти двойное значение 8.14 в списке.
Одно из предложений - внести следующие диагностические изменениячтобы убедиться, что вывод, который вы видите, действительно из приведенного ниже кода.
System.out.println("Before if-test = " + templist.indexOf(8.14));
if (ds > 8.1000 && ds < 8.1500) {
dot = templist.indexOf(8.14);
dot++;
System.out.println("Dot = " + dot);
}
Вышеуказанные изменения в вызове println () могут быть возвращены к исходному коду после того, как вы определили основную причину.
Другая возможность - посмотреть на метод классареализации.Если объект, возвращенный методом indexOf (), имеет метод toString (), который преобразует отрицательное значение в положительное значение (например, toString () был реализован для преобразования -1 в 1), тогда метод toString () будет вызыватьсяметод println ().Принимая во внимание, что
dot = templist.indexOf(8.14);
может возвращать -1.Это может объяснить вывод:
1
0
Надеюсь, это поможет.Спасибо!