Что происходит, когда переменная с плавающей точкой выходит за пределы?

Я заметил две вещи:

std::numeric_limits::max()+(a small number) дает: ,std::numeric_limits::max()

std::numeric_limits::max()+(a large number лайк:std::numeric_limits::max()/3) дает инф.

Почему эта разница? 1 или 2 приводит к ПЕРЕКЛЮЧЕНИЮ и, следовательно, к неопределенному поведению?

Редактировать: Код для тестирования это:

1.

float d = std::numeric_limits::max();
float q = d + 100;
cout < "q: " < q < endl;

Ответы на вопрос(2)

Ваш ответ на вопрос