DBL_MAX整数部分相等

DBL_MAX integer part equality

本文关键字:整数部 MAX DBL      更新时间:2023-10-16

在Visual C++ 2010中,我试过这个

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

在调试器窗口中,我把

d == dblmaxintpart

结果是真的

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

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

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

最后,任何小于 1 的double的小数部分将恰好是其自身,任何double的小数和整数部分在相加时将产生精确的原始double