gpt4 book ai didi

ios - CLLocationCoordinates lat/lon 值是否依赖于区域设置?

转载 作者:行者123 更新时间:2023-11-29 12:45:40 24 4
gpt4 key购买 nike

我只是通过使用 [NSString stringWithFormat:@"%.5f, %.5f"]; 将 CLLocations 转换为逗号分隔的字符串,例如 "75.45874, -45.17292"并将它们发送到我的服务器应用程序,该应用程序期望字符串为两个数字,小数点作为小数点分隔符。

阅读完所有文档后,我终究无法弄清楚这些坐标是否依赖于区域设置,即如果用户在海外(我在美国),他们的位置是否会有逗号作为小数点分隔符:"75,45874, -45,17292"?

我知道有几种不同的方法可以在需要时将逗号转换为小数,比如使用 NSNumberFormatter,我只是想弄清楚我是否真的需要这样做?我试过用模拟器模拟位置,但我不知道区域设置是否会渗透到 CLLocation 的纬度/经度属性并会正确模拟这种情况。有什么见解吗?

最佳答案

CLLocation 中的坐标表示为 CLLocationDegrees,定义为 double。这是 float ,与语言环境无关。

创建一个字符串

[NSString stringWithFormat:@"%.5f, %.5f", lat, lon]

也不依赖于语言环境。 stringWithFormat(几乎)符合 IEEE printf specification它将 %f 转换定义为

The double argument shall be converted to decimal notation in the style "[-]ddd.ddd", ...

因此您的代码将始终生成一个作为小数点分隔符。

另一方面,NSNumberFormatter 使用用户的语言环境首选项进行转换除非另有说明。如果您将语言环境设置为标准,您可以在您的情况下使用它“POSIX 语言环境”:

NSNumberFormatter *myFormatter = [[NSNumberFormatter alloc] init];
[myFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

关于ios - CLLocationCoordinates lat/lon 值是否依赖于区域设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com