gpt4 book ai didi

c - 在 C 中显示大 double

转载 作者:行者123 更新时间:2023-11-30 19:28:56 24 4
gpt4 key购买 nike

我在玩大 double 时遇到问题。

这是我准备的代码:

#include <stdio.h>
#include <float.h>
#define M_PI 3.141592653589793238462643383279502884197169399375105820974944
int main()
{
printf("%.70f\n",M_PI);
return 0;
}

它显示:

3.1415926535897931159979634685441851615905761718750000000000000000000000

但是一旦我将 M_PI 更改为 DBL_MAX,一切都会正确显示。更糟糕的是,当 M_PI 定义中的点被删除(留下一个非常大的数字)时,结果是 0。

我做错了什么?如何显示一些巨大的数字?

最佳答案

在 IEEE 754 64 位二进制浮点中,double 最常见的实现是 3.141592653589793115997963468544185161590576171875 是最接近 3.14159265358979323846264338327 的可表示数字9502884197169399375105820974944,应该打印的也是如此。在大多数情况下,转换为 double 时的舍入误差将出现在大约 16 个小数位之后。

DBL_MAX 根据其定义,必须能够精确表示为 double 型,因此从十进制字符串转换为 double 型时不存在舍入错误。

关于c - 在 C 中显示大 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53460668/

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