DBL_MAX整数部分相等

时间:2013-10-17 14:06:00

标签: c++ visual-c++ integer double max

在Visual C ++ 2010中,我尝试了这个

double d= DBL_MAX;
double dblmaxintpart;
modf(DBL_MAX, &dblmaxintpart);

在调试器窗口中我输入

d == dblmaxintpart

结果为 true

我可以假设DBL_MAX等于其整数部分作为始终有效的断言吗?

1 个答案:

答案 0 :(得分:3)

是的,表示整数的double的整数部分始终是double本身,即使在DBL_MAX。实际上,任何大于2 ^ 52的double都将自身作为整数部分,因为该大小的双精度数没有足够的mantissal位来表示分数。

出于类似的原因,并非所有2 ^ 53以上的整数都可以表示为double s(虽然转换为double时,它们仍然是整数)。

最后,小于1的任何double的小数部分将完全独立,任何double的小数部分和整数部分在添加时将完全生成原始double