Xamarin.ios CLLocation Coordinate.Latitude return 越南语没有翻倍
Xamarin.ios CLLocation Coordinate.Latitude return not double on viet language
我正在使用以下代码从 Xamarin.ios 获取值。
但是,当您将语言设置更改为越南语时,应作为数字输入的值将作为包含逗号 (,) 的数据接收。
126.82645585 >>>>> 126,82645585
38.123456 >>>>> 38,123456
Swift 或其他语言会出现这种情况吗?
public void SendLocation(object sender, LocationUpdatedEventArgs e)
{
CLLocation location = e.Location;
strUrl = "test.com/api/gps?token=1234";
strUrl += "&lati=";
strUrl += location.Coordinate.Latitude;
strUrl += "&longi=";
strUrl += location.Coordinate.Longitude;
strUrl += "&alti=";
strUrl += location.Altitude;
}
这里发生的事情是将双精度数或浮点数转换为字符串,C# 会自动遵守 App 的当前 Culture 集。
这意味着小数点分隔符会因语言而异,并且会根据您的选择而变化。
如果您始终希望使用相同的小数点分隔符。您可以告诉 C# 格式化它的文化不变性。
strUrl += location.Coordinate.Longitude.ToString(CultureInfo.InvariantCulture);
这应该将小数点分隔符保存为 .
,如果您想要不同的格式,您可以实现自己的 IFormatProvider
,它指示应该做什么。
我正在使用以下代码从 Xamarin.ios 获取值。
但是,当您将语言设置更改为越南语时,应作为数字输入的值将作为包含逗号 (,) 的数据接收。
126.82645585 >>>>> 126,82645585
38.123456 >>>>> 38,123456
Swift 或其他语言会出现这种情况吗?
public void SendLocation(object sender, LocationUpdatedEventArgs e)
{
CLLocation location = e.Location;
strUrl = "test.com/api/gps?token=1234";
strUrl += "&lati=";
strUrl += location.Coordinate.Latitude;
strUrl += "&longi=";
strUrl += location.Coordinate.Longitude;
strUrl += "&alti=";
strUrl += location.Altitude;
}
这里发生的事情是将双精度数或浮点数转换为字符串,C# 会自动遵守 App 的当前 Culture 集。
这意味着小数点分隔符会因语言而异,并且会根据您的选择而变化。
如果您始终希望使用相同的小数点分隔符。您可以告诉 C# 格式化它的文化不变性。
strUrl += location.Coordinate.Longitude.ToString(CultureInfo.InvariantCulture);
这应该将小数点分隔符保存为 .
,如果您想要不同的格式,您可以实现自己的 IFormatProvider
,它指示应该做什么。