pierrotm777
Messages postés24Date d'inscriptionvendredi 10 octobre 2008StatutMembreDernière intervention27 mai 2013
-
3 janv. 2012 à 13:02
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
19 janv. 2012 à 09:35
Bonjour,
Ceci est mon premier post bien que j'utilise énormément les exemples du forum.
Je souhaite arrondir un résultat à trois chiffres mais je me retrouve avec un arrondi complet .
Voici mon code
Public Function dmstodec(ByVal coor As Double)
dmstodec = ""
Dim degres As Double
Dim minutes As Double
Dim minutes2 As Double
Dim secondes As Double
'46.1744444 - 0.1744444 = 46 ;
degres = coor - (coor - Int(coor))
'0.174444 * 60 = 10.46664 ;
minutes = (coor - Int(coor)) * 60
'10.46664 - 0.46664 = 10 ;
minutes2 = minutes - (minutes - Int(minutes))
'0.46664 * 60 = 27.984.
'secondes = Math.Round(CDbl((minutes - Int(minutes)) * 60), 3)
secondes = (minutes - Int(minutes)) * 60
'The result must to be : 46° 10' 27.984".
MsgBox("46.1744444" & vbCrLf & secondes & vbCrLf & degres & "° " & minutes2 & "' " & Math.Round(CDbl(secondes), 3), vbOKOnly, "dms to dec")
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 18 janv. 2012 à 08:21
ton lien convertisseur, pardon !
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
mdevaux62
Messages postés111Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention17 novembre 20127 18 janv. 2012 à 08:35
Sans vouloir polémiquer à outrance (mais quand même), tu dis :
"c'est de sa partie entière que l'on fait le calcul des degrés, minutes et secondes
c'est sa partie décimale que l'on arrondit ensuite comme on l'entend pour arriver au genre : x degrés, y minutes, z.### secondes"
Or, je constate que le convertisseur donne, pour une valeur décimale de 74.45681°, 74° 27' 24.516"
Les parties décimales de NB1 et NB2 secondes (celles que tu nommes ###) ne sont pas du tout identiques.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 18 janv. 2012 à 09:34
Tu lis en diagonale et sautes une correction faite immédiatement après le message de méthode :
pardon (gros doigts) ===>> correction ===>>
en y ajoutant la partie décimale de NB2
, arrondie comme on l'entend.
Mais je reviens avec, carrément, un bout de code (il sera écrit en VB6 mais facilement transposable en VB.Net). Je vais l'écrire de telle sorte qu'il sera utilisable pour tout un tas de choses (pas uniquement des degrés ou des heures) !
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
mdevaux62
Messages postés111Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention17 novembre 20127 18 janv. 2012 à 09:48
OK, je n'avais effectivement pas relevé ton correctif.
Il reste que, dans ce cas, et si je comprends bien, tu fais ni plus ni moins l'impasse sur la partie décimale de NB1 :
"c'estde sa partie entière que l'on fait le calcul des degrés, minutes et secondes
c'est sa partie décimale (donc partie décimale de NB2 résultat du traitement de la partie entière de NB1) que l'on arrondit ensuite comme on l'entend pour arriver au genre : x degrés, y minutes, z.### secondes"
Qu'advient-il de la partie décimale de NB1 ?
Je suis curieux de voir ton code... qui je pense m'aidera à comprendre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 18 janv. 2012 à 09:55
1) NON ! pas du tout (tu continues à lire en diagonale ?). J'en tiens bien évidemment compte (DEC)
2) je viens de constater que ton "convertisseur" sur le web manque d'exactitude . (un petit bug ?)
J'ai presque fini mon petit bout de code polyvalent ... Je reviens avec
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 19 janv. 2012 à 09:35
Pas de quoi, mais ... Et le tag(s) "réponse acceptée" ? Partout ou solution bonne ...
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient