elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [Solucionado]Problemas para crear función Decimal a Grados Minutos Segundos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado]Problemas para crear función Decimal a Grados Minutos Segundos  (Leído 5,701 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
[Solucionado]Problemas para crear función Decimal a Grados Minutos Segundos
« en: 5 Marzo 2013, 20:17 pm »

Hola como dice el titulo quiero crear una función que pase un numero decimal a grados minutos segundos.

la cuenta es fácil consiste en tomar un numero por ejemplo como este 32.4525 la parte entera es el grado (32) la parte decimal se la multiplica por 60 (0.4525 x 60) eso da como resultado 27,15 la parte entera son los minutos (27), y a la parte decimal se la multiplica por segundos 0.15 x 60 el resultado de eso ( 9) son los segundos (este ultimo puede tener decimales.)



esta es la función que hice pero no funciona bien

Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.    Dim G As Double, M As Double, S As Double
  5.  
  6.    DecimalToGMS 32.4525, G, M, S
  7.    Debug.Print G, M, S  '32.4525 = 32 Grados,27 Minutos,9 Segundos
  8.  
  9.    DecimalToGMS 61.0125731667, G, M, S
  10.    Debug.Print G, M, S  '61.0125731667 = 61 Grados,0 Minutos,45.2633999976 Segundos
  11. End Sub
  12.  
  13.  
  14. Private Function DecimalToGMS(Value As Double, Grado As Double, Minuto As Double, Segundo As Double)
  15.    Dim Absolute As Double
  16.    Dim sRet As String
  17.    Dim lPos As Long
  18.    Dim pEntera As Double, pDecimal As Double
  19.  
  20.  
  21.  
  22.    Absolute = Abs(Value)
  23.  
  24.    pEntera = Fix(Absolute)
  25.    pDecimal = Absolute - pEntera
  26.  
  27.    Grado = pEntera
  28.    Absolute = pDecimal * 60
  29.  
  30.    pEntera = Fix(Absolute)
  31.    pDecimal = Absolute - pEntera
  32.  
  33.    If pEntera <> Absolute Then
  34.        Minuto = pEntera
  35.    End If
  36.  
  37.    Segundo = pDecimal * 60
  38.  
  39. End Function

aqui tienen una pagina para testear los resultados (funciona bien)
http://convertir-grados-decimales-a-grados-minutos-y-segundos.todala.info/

intente utilizar el valor como una cadena de texto pero tengo el problema cuando en la parte de multiplicar los segundos no hay decimales,
si lo tratan como una cadena de texto tengan en cuenta que según la configuración local el punto podría ser una coma.

 


« Última modificación: 5 Marzo 2013, 20:38 pm por LeandroA » En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Problemas para crear función Decimal a Grados Minutos Segundos
« Respuesta #1 en: 5 Marzo 2013, 20:29 pm »

Creo que esta andando bien ahora mmm por las dudas que alguien la testee.

EDIT 2 si funciona bien era un problema de copy and paste de un numero, me volvio pelotudo  :¬¬

61,0125731666667
61.125731666667


« Última modificación: 5 Marzo 2013, 20:37 pm por LeandroA » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: [Solucionado]Problemas para crear función Decimal a Grados Minutos Segundos
« Respuesta #2 en: 5 Marzo 2013, 20:39 pm »

Acordate de usar Val para evitar los quilombos con el separador  decimal...
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [Solucionado]Problemas para crear función Decimal a Grados Minutos Segundos
« Respuesta #3 en: 5 Marzo 2013, 20:54 pm »

Me funciona perfectamente.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[batch] Funcion :H2D (convierte hexa a decimal)
Scripting
The Shadow 0 1,988 Último mensaje 18 Febrero 2008, 21:40 pm
por The Shadow
[batch] Funcion :D2B (convierte decimal a binario)
Scripting
The Shadow 0 2,602 Último mensaje 18 Febrero 2008, 21:43 pm
por The Shadow
Sumar Hs ; Minutos ; Segundos . Milisegundos
Programación Visual Basic
e500 4 16,855 Último mensaje 30 Marzo 2009, 01:31 am
por e500
Busco Funcion Para String(SOLUCIONADO)
PHP
octavioxd 1 2,557 Último mensaje 26 Diciembre 2009, 15:01 pm
por braulio--
como ejecuto una funcion cada X segundos?
Programación Visual Basic
Petro_Boca 6 2,818 Último mensaje 9 Septiembre 2010, 07:09 am
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines