gpt4 book ai didi

c++ - C++ double 只有 3 位数吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:20:49 26 4
gpt4 key购买 nike

我写了一个小程序,跑在wintel上。如果 x 是 double,我得到 3,如果 x 被定义为 long double,我得到 4。这是否意味着这些类型只能精确到 3 位或 4 位小数?

谢谢

double x = 1;
long double f = 0.1;

while (x+f-f == x) f /= 10;

int precision = 1-log10(f);

最佳答案

没有。 double 通常是 IEEE 754 double-precision floating point number ,这意味着它有一个 52 位的小数字段。包括隐含的前导 1 给出 53 个有效位,或大约 16 个十进制数字:

log10(253) ≈ 15.955

假设您使用的是 Intel 平台,long double 通常是 80-bit floating point number具有 64 位有效数字。这给出了大约 19 位十进制数字的精度:

log10(264) ≈ 19.266

关于c++ - C++ double 只有 3 位数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19690269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com