#include <stdio.h>
#define pi1 3.141
const float pi = 3.141;
int main()
{
printf("%f %f", 4 * 10 * pi, 4 * 10 * pi1);
}
输出(在我的机器上)是 125.639999 125.640000
最佳答案
pi1 是一个预处理器符号,在文本中被替换为 double 值。
pi 是一个从 double 初始化的浮点常量,因此会丢失一些精度位(请参阅 IEEE754 规范)。
有关更多详细信息,作为浮点数的 pi 实际上存储为 0x40490625,即 3.1410000324249267578125。 pi1 存储为 0x400920C49BA5E354,即 3.1410000000000000142108547152
关于c - 为什么两个计算给出不同的答案?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21484478/