私はこのコードを持っています
#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 です。以前の質問で私自身が既に答えたように、このコードは壊滅的なキャンセルのために失敗します。しかし、今、私はさらに奇妙なことを発見しました。長いロングを使用すると機能しますが、私の知る限り、それらはダブルよりも範囲が狭くなります。なんで?