Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: problema con variabili

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    250

    problema con variabili

    Ciao a tutti, ho una funzione che mi calcola la distanza fra 2 coordinate. Se le metto manualmente funziona alla grande (Latitud1, Longitud1, Latitud2, Longitud2), se invece le recupero da db mi sballa completamente i calcoli ... il problema sta nelvle variabili .... vuole le coordinate come decimale ... ma se le salvo sul db come numero mi passa la virgola (ho provato a fare un replace ma non lo riconosce + come numero), se la salvo come varchar mi passa il punto ma non come numero .... AIUUUUUUTO!!!!

    Public Function CalculateDistanceASP(Latitud1, Longitud1, Latitud2, Longitud2, distType)

    If IsNull(Latitud1) Then
    Exit Function
    End If

    If Latitud1 = 0 Or Longitud1 = 0 Or Latitud2 = 0 Or Longitud2 = 0 Then
    CalculateDistanceASP = Null
    Exit Function
    ElseIf Latitud1 = Latitud2 And Longitud1 = Longitud2 Then
    CalculateDistanceASP = 0
    Exit Function
    End If

    lat_radius1 = Latitud1 * 3.141592654 / 180
    lon_radius1 = Longitud1 * 3.141592654 / 180
    lat_radius2 = Latitud2 * 3.141592654 / 180
    lon_radius2 = Longitud2 * 3.141592654 / 180
    diff = Abs(lon_radius1 - lon_radius2)
    X = Sin(lat_radius1) * Sin(lat_radius2) + Cos(lat_radius1) * Cos(lat_radius2) * Cos(diff)
    dist = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
    miles = dist * 3958.754
    If UCase("" & distType) = "K" Then
    CalculateDistanceASP = formatnumber(miles * 1.609344,1)
    Else
    CalculateDistanceASP = formatnumber(miles,1)
    End If
    End Function

  2. #2
    Hai provato a fare la replace della virgola in fase di recupero dati dal database e non in fase di caricamento?

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    250
    yes, ma se faccio il replace non mi riconosce la variabile come numerica

  4. #4
    Originariamente inviato da alesandri
    yes, ma se faccio il replace non mi riconosce la variabile come numerica
    Hai provato poi (dopo averla recuperata) a trasformare la variabile con la funzione:
    Cint(expression)

  5. #5
    miche', CINT toglie i decimali. se si vuole la virgola ci sono CSNG e CDBL, dipende dalla precisione

  6. #6
    Originariamente inviato da optime
    miche', CINT toglie i decimali. se si vuole la virgola ci sono CSNG e CDBL, dipende dalla precisione
    Azz.... lapsus imperdonabile! Faccio ammenda.


  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    250
    provato ma nada ... continua a non funzionare

  8. #8
    che vuol dire "non funziona"?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    250
    mi sballa i calcoli... mentre se metto le variabili "a mano" funziona .... ad esempio se aggiungo all'interno della funzione ...

    Latitud1 = 40.8355403
    Latitud2 = 14.2234516
    Longitud1 = 40.8474813
    Longitud2 = 14.2221659

    il calcolo è perfetto ...

  10. #10
    non è chiaro lo stesso. fa' un esempio di funzionamento "a mano" e uno di funzionamento tramite lettura da db. posta un po' di codice, grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.