i believe setprecision sets the amount of numbers the variable should be converted to. this means that in this case your number will be converted to 6 numbers: 1 integer and 5 decimals.
So just make the setprecision(7) to get 6 decimals :)
If you always want 6 decimals after the decimal point, you should not reset fixed, but rather set it (cout << fixed;).
Otherwise, the number of decimals will vary with the number of digits before the decimal point.