Различная точность в C ++ и Fortran

Для проекта, над которым я работаю, я написал в C ++ очень простую функцию:

Fne(x) = 0.124*x*xпроблема в том, когда я вычисляю значение функции

заx = 3.8938458092314270 и с Фортраном 77, и с языками C ++ я получил разное преимущество.

Для Фортрана я получилFne(x) = 1.8800923323458316 и для C ++ я получилFne(x) = 1.8800923630725743, Для обоих языков функция Fne кодируется для значений двойной точности, а также возвращает значения двойной точности.

Код C ++:

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

Код Фортрана:

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

Не могли бы вы помочь мне выяснить, откуда эта разница?

Ответы на вопрос(2)

Ваш ответ на вопрос