x67
@x67

Почему программы считают по разному?

Суть вот в чем, взял я один старый проект под compaq visual fortran и перекомпилировал на новом intel fortran компиляторе. Код не идеален, но безошибочно запускается. Разве что пришлось Qzero и Qsave поставить (директивы компилятора, одна инициализирует переменные в 0.00, другая обеспечивает размещение переменных в статической памяти ). Но только посмотрите на это! Мне жить после такого страшно стало. Абсолютно одинаковые исходные данные для вычислений, но результат разный! пусть где то в последних знаках после запятой, но все же! Это ведь лишь одна из промежуточных переменных.. Очень интересно понять, почему это происходит и можно ли этого совсем избежать? b24959be869441c499fc2876953d6d39.png
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
Godless
@Godless
есть подозрение на ошибки округления, мб накапливаемые, и мб где-то компилятор заоптимизировался...
я хз можно ли в фортране это сделать, но нопробуйте увеличить разрядность десятичных переменных.
ну т.е. если был float, сделать double.
Еще результаты старой компиляции были получены на том же ПК ? аппаратная часть не менялась?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ivkol
Смотрите раздел Применение по ссылке https://ru.wikipedia.org/wiki/%D0%94%D0%BB%D0%B8%D...
Ответ написан
dom1n1k
@dom1n1k
Надо проверить, какие типы данных используются.
Подозреваю, что в одном случае single float, а в другом double.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы