Consider the Fortran code

%{} program test real :: x=100000.0, y=100000.1, z z = y-x print*, 'z=',z end program testWe would expect the output

but in fact the program prints (on Alpha ...)

Since single precision handles about 7 decimal digits, and the subtraction cancels the most significant 6, the result contains only one significant digit. The appended garbage

Adrian Sandu 2001-08-26