SUNDEC
Messages postés13Date d'inscriptionlundi 28 juillet 2008StatutMembreDernière intervention 5 février 2010
-
24 janv. 2010 à 16:51
SUNDEC
Messages postés13Date d'inscriptionlundi 28 juillet 2008StatutMembreDernière intervention 5 février 2010
-
27 janv. 2010 à 18:35
Bonjour. Je demande de l'aide pour transformer des degres sexagésimaux sous une entrrée
DD.MMSS (MM= minutes, SS=secondes) ex;: 44°10'00'' donc 44.1000 en valeur décimales.
réponse: 44.167
C'est en BASIC tout simple, et non en VB que je voudrais le code.
Le code que j'ai ecrit est faux et je ne sais d'ou vient l'erreur
TU =INT(HH)+((INT(100*HH)/100)-INT(HH))/.6+(100*HH-INT(100*HH))/36:PRINT"TU=":PRINT TU
Merci d'avance.
SUNDEC
Messages postés13Date d'inscriptionlundi 28 juillet 2008StatutMembreDernière intervention 5 février 2010 26 janv. 2010 à 19:38
Eh bien le BASIC ne donne pas ce résultat mais 34,37889 ce qui représente une erreur d'une seconde.
Pas trop mal...Qu'est ce que c'est que ce
+1E-8 ?
Si vous avez un peu de temps j'aimerais bien le code pour le pb inverse, c'est à dire entrer un nombre décimal et le sortir sous la forme:
DD.MMSS Ex 34.37889 donnerait: 34.2244
Merci beaucoup pour ce serieux coup de main!
SUNDEC
Messages postés13Date d'inscriptionlundi 28 juillet 2008StatutMembreDernière intervention 5 février 2010 27 janv. 2010 à 18:35
La formule complète donnée marche bien si l'angle est donné complet je veux dire 34°45'56"
Soit 34.4556. Mais si les secondes sont nulles, (34.4500) le résultat est à nouveau faux.Après recherche, cela vient du dernier terme (Int((h_m * 100 - Int(h_m * 100)) * 100) / 3600)qui n'est pas nul alors qu'il devrait l'être.Avec l'exemple 44.1000,
h*100-INT(h*100) devrait être nul
h*100=4410 et pour des raisons inconnues, INT(h*100)=4409 ce qui fausse le résultat de 100/3600=0.0277777
Je voudrais bien savoir pourquoi ce INT(h*100) ne donne pas 4410.