C++中不使用std::numeric_limits<T>::lowest(),能否用-std::numeric_limits<T>::max()获取float最小值?
用
-std::numeric_limits<T>::max() 获取float最小值可行吗? 对于float类型来说,这么做完全可行。
现在绝大多数系统的float都遵循IEEE 754单精度浮点数标准,在这个标准下,最大的正有限值和最小的负有限值是对称的。std::numeric_limits<float>::max()返回的是最大的正float值,对其取负后得到的结果,和std::numeric_limits<float>::lowest()的返回值完全一致。
需要注意的是,这个结论依赖IEEE 754标准的实现,但目前几乎所有主流平台都符合该标准,实际开发中无需担心兼容性问题。
内容的提问来源于stack exchange,提问作者colIn
相关产品推荐
相关产品推荐

