Résultat d'un SINUS

jeffcantin Messages postés 19 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 16 décembre 2003 - 16 déc. 2003 à 03:50
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 16 déc. 2003 à 10:55
Bonjour à tous...

J'ai un problème avec la résolution d'un simple sinus...

J'ai fais le petit programme suiavnt pour faire un test

Private Sub cmdCalcul_Click()
lblSin.Caption = CStr(Sin(CDbl(txtDD) * 2 * 3.1416 / 360))
End Sub

Private Sub Form_Load()
txtDD.Text = 86.375833333
End Sub

Bon je mets la valeur de 86.3758333 pour faire le sinus de cette valeur. Le résultat s'affiche alors dans lblSin

Pour ce petit programme tout fonctionne corectement...

Toutefois je reprend ce même code dans mon programe (un autre programme) et j'inscrit lke code suivant...

dim dbDD as Double

Private Sub cmdCalcul_Click()
dbDD = txtDegre + txtMinute / 60 + txtSeconde / 3600
lblDegreDecimal.Caption = dbDD
lblResultatFinal.Caption = CStr(Sin(Val(lblDegreDecimal))) * 2 * 3.1416 / 360
End Sub

Ou dbDD est pour changer une valeur en degré minute seconde et la change en degré décimal et
lblResultatFinal.Caption devrait donner le résult du Sinus de dbDD soit 0.99800 mais ca me donne -1,6117428095044E-02

Je ne comprend pas pk ca me donne cela...

Si quelqu'un peut m'aider...

merci d'avance

En passant je suis débutant...

A+

Jeff

3 réponses

cs_Megafan Messages postés 389 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 23 septembre 2016 2
16 déc. 2003 à 08:37
Salut,

Et si au lieu de Val tu utilisais Cdbl....

@+
1
plaineR Messages postés 237 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 6 décembre 2005 4
16 déc. 2003 à 09:31
Tes parenthèses sont mal placées, dans un cas tu fais

CStr(Sin(CDbl(txtDD) * 2 * 3.1416 / 360))
ce qui revient à sin( CDbl(txtDD) * 2 * 3.1416 / 360 )

dans l'autre tu fais

CStr(Sin(Val(lblDegreDecimal))) * 2 * 3.1416 / 360
ce qui revient à sin( Val(lblDegreDecimal) )

ce qui n'est pas le même angle !
1
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 déc. 2003 à 10:55
plaineR a raison.
Ce n'est pas le Sinus qu'il faut * 2 * Pi / 360, mais l'angle !
Refflechis, on en a parlé assez longuement sur le chan l'autre soir !

Donc, je me répète :
AngleRadian = AngleDegré * 2 * Pi / 360
AngleDegré = AngleRadian * 360 / 2 / Pi

Donc, ton équation devrait-être :
lblResultatFinal.Caption = CStr(Sin(Val(lblDegreDecimal) * 2 * 3.1416 / 360))

Vala
Jack
1
Rejoignez-nous