在我的环境中(Win10 64位,VC ++ 2019和32位项目),sizeof(double)为8个字节,最大值应为1.84e19。但是std::numeric_limits<double>::max()在1.79e308附近。
sizeof(double)
1.84e19
std::numeric_limits<double>::max()
1.79e308
为什么它们如此不同?
C ++为什么最多64位双精度数有308位数字?在我的环境(Win10 64位)中>因为您的系统使用符合IEEE 754规范的硬件。该文档规定64位二进制浮点的最大有限可表示值约为1.8 E308。
C ++为什么最多64位双精度数有308位数字?
在我的环境(Win10 64位)中>
因为您的系统使用符合IEEE 754规范的硬件。该文档规定64位二进制浮点的最大有限可表示值约为1.8 E308。