Другие объяснили, почему парсинг "10.2" как 10 был бы плохой идеей. Теперь давайте рассмотрим «10.0».
«10.0» - это строковое представление числа, которое может иметь дробную часть - другими словами, не целое число.
Если вы анализируете значение как целое число, вы должны анализировать целочисленное представление. «10.0» почти наверняка всего лишь по совпадению целое число ... источник данных, очевидно, не является источником целых чисел, поэтому не следует рассматривать их как целые числа.
Если вы хотите, чтобы ближайшее целое число было «действительным» числом, вы должны разобрать его как действительное число, а затем округлить, как хотите.
Думайте об этом так: выбор правильной формы синтаксического анализа выражает веру в формат ввода. Текущее поведение говорит вам, что вы плохо угадываете.