gpt4 book ai didi

c - 定义 float 常量,多少位数有用?

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:46 25 4
gpt4 key购买 nike

当我在 C 中定义不能用十进制精确表示的常量时,例如 π,编译器将考虑多少位数来实际创建 float 还是内存中的 double

例如:

/* Overkill? */
const float PI_F = 3.1415926535897932384626433832795f;

/* Too few digits? */
const double PI_D = 3.14159;

最佳答案

假设IEEE 754 standard floating point numbers ,这在当今很常见,float 的精度大约为 7.22 位,double 的精度为 15.95 位,因此 的目标是小数点后 7 位float π 常量和 15 for double 是安全的。 128 位 long double 给出 34.02 精度,因此 π 中小数点后 33 位。(*)

但是,过高的精度不会造成伤害,编译器会简单地将其切断。

(*) 请注意,long double 通常不是 IEEE 格式; x86-32 通常有 80 位,而不是 128 位,long double。在 MSVC 中,它是 apparently double 的同义词,所以是 64 位的。

关于c - 定义 float 常量,多少位数有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314257/

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