fmod 関数を使用すると、非常に紛らわしい結果が得られます。
次のコード:
double x = pow(142, 35);
double y = fmod(x, 221);
std::cout << x << std::endl << y;
出力:
2.13842e+75
206
ただし、x 値をハードコーディングする場合:
double x = pow(142, 35);
double y = fmod(2.13842e+75, 221);
std::cout << x << std::endl << y;
出力は次のように変更されます。
2.13842e+75
14
これの原因が何かはわかりません。プログラム内にいくつかの醜いバグが作成されています。どんな洞察も大歓迎です。前もって感謝します。