// This illustrates that floating-point numbers do not always // follow the distributive law a·(b+c) = a·b + a·c #include int main() { double a = 1e200, b = 1e200, c = -1e200; printf("%f\n", a*(b+c)); printf("%f\n", a*b+a*c); return 0; }