Hi,
I’m a little bit of confused about these codes and output.
program fl
implicit none
real(kind=8) :: a,b,c
b=7d0
c=10d0
a=b/c
write(*,'(f25.22)') a
end program
pgf90 Mnofprelaxed Kieee O0 fl.f90
./a.out
0.6999999999999999555911
^^^^^^
A double has only 15.95 decimal digits of precision. It asks for outputing 22 decimal digits.
My questions are

For my understanding, it should be 0.6999999999999999 in memory. So where the last 6 decimal digits come from?

It sounds like Mnofprelaxed Kieee didn’t give any help in this case. So is there any compliation option help for this case?

Is there any way to get correct result of 22 decimal digits output ?
Appreciating any comments
Jerry