このコードが同じ式に対して2つの結果を与えるという事実に頭を悩ませることはできません:
#include <iostream>
#include <cmath>
int main() {
// std::cout.setf(std::ios::fixed, std::ios::floatfield);
std::cout.precision(20);
float a = (exp(M_PI) - M_PI);
std::cout << (exp(M_PI) - M_PI) << "\n";
std::cout << a << "\n";
return (0);
}
ここでIEEE 754浮動小数点表現が重要な役割を果たしているとは本当に思いません...