我有这个代码
#include <stdio.h>
#include <math.h>
static double const x = 665857;
static double const y = 470832;
int main(){
double z = x*x*x*x -y*y*y*y*4 - y*y*4;
printf("%f \n",z);
return 0;
}
这个问题的真正解决方案是方程 1。正如我自己在上一个问题上已经回答的那样,此代码由于灾难性取消而失败。然而,现在我发现了一件更奇怪的事情。如果您使用 long long,它会起作用,而据我所知,它们的范围小于 doubles。为什么?