Precisión diferente en C ++ y Fortran

Para un proyecto en el que estoy trabajando, he codificado en C ++ una función muy simple:

Fne(x) = 0.124*x*x, el problema es cuando calculo el valor de la función

parax = 3.8938458092314270 Con los lenguajes Fortran 77 y C ++, obtuve una precisión diferente.

Para Fortran tengoFne(x) = 1.8800923323458316 y para C ++ tengoFne(x) = 1.8800923630725743. Para ambos idiomas, la función Fne está codificada para valores de doble precisión y también devuelve valores de doble precisión.

Código C ++:

double FNe(double X) {
    double FNe_out;
    FNe_out = 0.124*pow(X,2.0);
    return FNe_out;
}

Código Fortran:

  real*8 function FNe(X)
  implicit real*8 (a-h,o-z)
  FNe = 0.124*X*X
  return
  end

¿Pueden ayudarme a encontrar de dónde proviene esta diferencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta