я в настоящее время перевод программы с QBasic на VB.Net и у меня есть эта строка кода:ATN с QBasic на VB.Net
RSA = 270 + 180/PI * (ATN(ABS(X(Z, 2)/X(Z, 1))))
Я переведенный как
RSA = 270 + 180/PI * (Math.Atan(Math.Abs(arrayX(z - 1, 2 - 1)/arrayX(z - 1, 1 - 1))))
для VB .Net, но результаты разные. Вот некоторые сведения:
PI = 3,141592654
И для моего теста
я использовал "6.8929106501697825" для моего значения X(Z, 2)
я использовал "-5.08864764726704" для моего X(Z, 1)
значения
Результат для QBasic: 323.9964
Результат для VB.Net: 323.5636369944437
Я сделал что-то не так?
Благодаря
У вас есть правильный результат для входных данных, которые у вас есть. Я предполагаю, что когда вы заполнили свой массив, вы не сделали то же исправление от 1 до 0 базового смещения. Убедитесь, что входные данные в QBasic и VB.NET одинаковы. – Aleks
Да, они такие же. – Holytoutant
Тогда, возможно, QBasic, будучи очень старым, теперь использует таблицы поиска для вычисления atn, поэтому делает некоторое округление. Хотя с ошибкой почти на половину градуса трудно поверить – Aleks