В большинстве случаев я понимаю, что тест сравнения с плавающей запятой должен реализовываться с использованием диапазона значений (abs (x-y) < epsilon), но само вычитание означает, что результат будет равен нулю?
// can the assertion be triggered?
float x = //?;
assert( x-x == 0 )
Я предполагаю, что nan/inf могут быть особыми случаями, но меня больше интересует то, что происходит для простых значений.
изменить
Я рад выбрать ответ, если кто-то может ссылаться на ссылку (стандарт с плавающей точкой IEEE)?