Mensaje    Asunto: tipos de datos Responder citando

hola compañeros, tengo unos datos de tipo double,latitud y longitud.
Tambien tengo unos datos del tipo Long double LatCur y longCur.

mi problema es el siguiente,al intentar hacer moving map si hago lo siguiente:
Código:

Map->BeginUpdate();
        Map->CenterY = (Latitude);
        Map->CenterX = (Longitude);
        Map->Zoom = 30;
        Map->EndUpdate(true);

Pero me temo que debo convertir los datos double a long double,ya que cuando los valores son 0 funciona correctamente de otra manera no va del todo bien.
puedo convertir los datos double a long double?
por si acaso pongo todo el bloque de codigo.
gracias
Código:

/*Esta estructura convierte los grados decimales recibidos en lblLatGps y lblLongGps
en grados,minutos y segundos*/
String DecASexa (double dec)
{
        short grados = dec;
        double temp = std::fabsl (dec - grados);
        unsigned short minutos = (temp *= 60);
        unsigned short segundos = (temp - minutos) * 60;
        return Format ("%d\xB0 %d' %d\"", ARRAYOFCONST ((grados, minutos, segundos)));
}

void __fastcall TfrmPrincipal::GpsPosition(TObject *Sender,
      TDateTime FixTime, double Latitude, double Longitude,
      TGPSQuality Quality, int SatCount, double HDOP, double Altitude,
      double GeodidHeight)
{
        {
        if(Quality == gpsqNone)
        {
          lblLatGps->Twinkle = true;
          lblLongGps->Twinkle = true;
        }
          else
          {
            lblLatGps->Twinkle = false;
            lblLongGps->Twinkle = false;
          }
        }
        {
        if(SatCount == 0)
        {
          lblSat->Caption = SatCount;
          lblSat->Twinkle = true;
        }
          else
          {
            lblSat->Caption = SatCount;
            lblSat->Twinkle = false;
          }
        }
        {
        lblHoraUtc->Caption = FixTime;
        lblRumboGps->Caption = " Rumbo " + (FloatToStr(Course)) + " \xB0 ";
        }

        {
          if(optNudos->Checked)
          {
            lblSpeedGps->Caption = (FloatToStr(Speed)) + " Nudos ";
          }
            else
            {
              lblSpeedGps->Caption = (FloatToStr(Speed)) + " Km/h ";
            }
        }

        {
          if(Latitude < 0)
            {
              lblLatGps->Caption = (DecASexa(-Latitude)) + " S ";
            }
              else
                {
                  lblLatGps->Caption = (DecASexa(Latitude)) + " N ";
                }
                  if(Longitude < 0)
                    {
                      lblLongGps->Caption = (DecASexa(-Longitude)) + " W ";
                    }
                      else
                      {
                        lblLongGps->Caption = (DecASexa(Longitude)) + " E ";
                      }

        /*establece Latitud y Longitud recibidas desde el Gps en el centro de la
        pantalla*/
/*El problema esta aqui, para mayor precision necesito pasar Longitude y latitude a double*/

        Map->BeginUpdate();
        Map->CenterY = (Latitude);
        Map->CenterX = (Longitude);
        Map->Zoom = 20;
        Map->EndUpdate(true);
        }

}

_________________
El hombre es el unico ser que tropieza dos veces en la misma piedra ( en mi caso infinitas veces)