Hi

Two comments on the code
1. always initialise variables to be on the "safe side": double z=0.0;
2. always return a value, if your function has a non-void return type.
Code:
	  return(0);
} // int main(){
Concerning your question: "outputs 4e-38":

A number like 1000 can be written as 10^3 (ten to the power of 3),
another notation is 1e+3 (three 3 zeroes after the 1).
A number like 0.001=1e-3 (if you shift the dot to the right 3 times, you get "1.0").
"cout" by default uses the "1e-3"-notation.

In your case: .000000000000000000002 = 2e-19.
And the following calculation:
.000000000000000000002*.000000000000000000002 =
2e-19 * 2e-19 = 4e-38.


Cheers