如何在C ++中没有#include <limits>的情况下获取DBL_MIN

时间:2016-12-14 04:24:36

标签: c++ double

我正在编写一个header / cpp文件对,并希望最小化我需要包含在cpp文件中的内容。我使用#include <limits>来访问DBL_MAX,并想知道是否有另一种获取该值的方法并将其粘贴在变量中。顺便说一句,看起来C ++中不允许/支持位操作。

同样重要的是,该值恰好是最后一位的最大值,而不是&#34;关闭&#34;它。

谢谢:)

2 个答案:

答案 0 :(得分:1)

唯一正确的方法是

#include <cfloat>

如果您愿意将代码限制为仅在使用特定浮点表示的平台上运行(例如IEEE-754,如果提供了附件F&#34; IEC 60559浮点运算&#34;),您可以输入包含固定值的字节数组(例如使用examples on Wikipedia)。但是,这对于编译器编写者为您所做的事情来说是一个很大的便携性价格。将此与您每次构建库时可能获得的收益进行比较(提示:您将难以衡量差异),并且您会发现黑客攻击您自己的标准常量版本确实不值得

即使您从库中的标题中包含<cfloat>(您希望 - 将比构建实现更多,更多次),使其成为非库存便携式以节省一些微秒不太可能是一个很好的权衡。

答案 1 :(得分:-2)

只需将这些值分配给变量:DBL_MIN为2.2250738585072014e-308; DBL_MAX是1.7976931348623157e308。