Je traduis actuellement un programme de QBasic à VB.Net et j'ai cette ligne de code:ATN de QBasic à VB.Net
RSA = 270 + 180/PI * (ATN(ABS(X(Z, 2)/X(Z, 1))))
Je traduis comme
RSA = 270 + 180/PI * (Math.Atan(Math.Abs(arrayX(z - 1, 2 - 1)/arrayX(z - 1, 1 - 1))))
pour VB .Net mais les résultats sont différents. Voici quelques informations:
PI = 3,141592654
Et pour mon test
je "6,8929106501697825" pour ma X(Z, 2)
valeur
je "-5,08864764726704" pour ma X(Z, 1)
valeur
Le résultat pour QBasic est: 323.9964
Le résultat de VB.Net est: 323.5636369944437
Ai-je commis une erreur?
Merci
Vous avez obtenu le bon résultat pour les données d'entrée dont vous disposez. Ma conjecture est quand vous avez rempli votre tableau que vous n'avez pas fait la même correction de décalage de base de 1 à 0. Vérifiez que les données d'entrée dans QBasic et VB.NET sont identiques. – Aleks
Oui, ils sont identiques. – Holytoutant
Alors peut-être QBasic étant très vieux maintenant utilise des tables de recherche pour calculer atn fait donc un peu d'arrondi. Bien qu'il soit difficile de croire qu'il y ait presque un demi-degré d'erreur – Aleks