正如我解释它,MSDN的定义的numeric_limits::is_exact几乎都是假的:
在[this]类型上完成的[all]计算没有舍入误差.
而IBM的定义几乎总是正确的:(或圆形的定义,这取决于你怎么看它)
一种对其所有值都有精确表示的类型
我确定的是,我可以2在a double和a中存储一个,long而且它们都可以完全代表.
然后,我可以将它们分开,10并且两者都不会完全保持数学结果.
给定任何数值数据类型T,定义的正确方法是std::numeric_limits<T>::is_exact什么?
编辑:我已经从许多答案中提供的详细信息中发布了我认为对此问题的准确答案. 这个答案不是赏金的竞争者.