Это потому, что значения округлены для печати.Это абсолютно то, что можно ожидать.
Если вам нужно избежать этого поведения, то либо отформатируйте выходные данные по-другому, либо используйте соответствующую дельту для проверки, например, 5.0 - t < delta
delta
- это любое числовое значение, которое вам нравится -он определяет, насколько близко 5 равно 5 для ваших целей, учитывая, что в общем случае десятичные значения не могут быть точно представлены с использованием чисто двоичного представления.
Если это недопустимо в вашем приложении, альтернативой является использованиедесятичный класс, который использует десятичное представление внутри.