Rus*_*rse 28 c++ compiler-construction floating-point ieee-754
我想问一个跟随这个问题的问题,如果编译器使用标准,那么定义检查可以很好地回答这个问题.然而,这只适用于C.有没有办法在C++中做同样的事情?
我不希望将浮点类型转换为文本或使用一些非常复杂的转换函数.我只需要编译器检查.如果您知道此类兼容编译器的列表,请发布链接.我找不到.
小智 29
实际上,你有一种更简单的方法来实现这一点.从C++标准来看,18.2.1.1
该类numeric_limits
存在于其中std
.要访问所述静态成员,您只需执行以下操作:
std::numeric_limits<double>::is_iec559;
Run Code Online (Sandbox Code Playgroud)
要么:
std::numeric_limits<float>::is_iec559;
Run Code Online (Sandbox Code Playgroud)
true
如果使用IEEE 754,则应该返回,否则返回false.
作为一种替代方法,Adam的答案的第二部分也应该为C++做.