Visual Studio에서 Xamarin Android 앱을 개발 중입니다.
다음과 같은 GPS 좌표의 문자열 배열이 있습니다.
*string[] DeviceLocations = { "23.2342;32.4544", "7.4321;9.5431", "12.4223;-23.3434" };*
마커처럼 내 Google지도에 전달할 수 있으려면 "."와 함께 이중 값으로 변환해야합니다. 구분자로.
이를 위해 다음과 같은 여러 가지 방법을 시도했습니다.
1)
Double lat = Convert.ToDouble(splitPos[0].ToString(), new CultureInfo("en-US"));
2)
NumberFormatInfo info = new NumberFormatInfo();
info.NumberGroupSeparator = ".";
info.NumberDecimalSeparator = ".";
Double lat = Double.Parse(splitPos[0].ToString(), info);
삼)
Double lat = XmlConvert.ToDouble(splitPos[0].ToString());
4)
Double lat = double.Parse(splitPos[1].ToString(), CultureInfo.InvariantCulture);
그러나 모두 "."대신 ","가있는 "lat"을 반환합니다.
누구든지 내가 시도 할 수있는 다른 아이디어가 있습니까 ??? 아이디어가 부족합니다.
한 가지 올바른 방법은 다음과 같습니다.
private static readonly CultureInfo USCULTURE = new CultureInfo("en-US");
// Go over all items
foreach (string latlon in DeviceLocations)
{
// Get the split result
string[] coordinates = latlon.Split(';');
// Lat is first item of split array, Lon is second item
double lat = Convert.ToDouble(coordinates[0], USCULTURE);
double lon = Convert.ToDouble(coordinates[0], USCULTURE);
// Now do something with the double values
...
}
나는 그들 모두가 무슨 뜻인지 모르겠다 . "."대신 ","와 함께 "lat"을 반환한다. , 그러나 double은 단지 double입니다. 출력 할 때만 소수점 구분 기호가 있습니다. 그렇다면 숫자를 출력하는 시스템은 ,
소수점 구분 기호로 사용됩니까?
이 경우 출력에서 US 형식을 사용하도록 강제해야합니다.
string outputtableLat = lat.ToString("G", USCULTURE);
string outputtableLon = lon.ToString("G", USCULTURE);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다