Как я его интерпретирую, определение MSDN numeric_limits::is_exact
почти всегда ложно:
[все] вычисления, выполненные на этом типе, не имеют ошибок округления.
И определение IBM почти всегда верно: (Или круговое определение, в зависимости от того, как вы его читаете)
тип, который имеет точные представления для всех его значений
Я уверен, что я мог хранить 2
как в double
, так и в long
, и они оба были бы представлены точно.
Затем я мог бы разделить их как на 10
, так и на результат математического результата.
Для любого числового типа данных T
, какой правильный способ определить std::numeric_limits<T>::is_exact
?
Изменить: Я отправил то, что я думаю, является точным ответом на этот вопрос из деталей, представленных во многих ответах. Этот ответ не является претендентом на награду.