/* --------------------------------------------------------------------- // Chapter 8 section 1: Computations can cause representational error. // --------------------------------------------------------------------- */ #include void main( void ) { double y=11.0, z=9.0; double x = z * (y / z) ; double w = y-x; printf( "\n w=%g x=%.10f y=%.10f z=%.10f \n", w, x, y, z ); for (y=2.0; ; ++y) for (z=2.0; z<=y; ++z) { x = z * (y / z) ; w = y-x; if( w != 0.0 ) { printf( "\n w=%g x=%.10f y=%.10f z=%.10f \n", w, x, y, z ); exit(1); } } }