Swift:使用latitude/longitude时坐标不准确

Swift: Coordinates not accurate when using latitude/longitude

我在 Swift 中使用 CLLocationManager。 当我显示 location.coordinate 时,它为我提供了结果:

37.787358900000001,经度:-122.408227

但是,如果我显示。 location.coordinate.纬度,结果为

37.7873589

你知道我怎样才能得到所有的小数吗?

谢谢, 托马斯

您看到的是 37.787358900000001 而不是 37.7873589 因为 nature of representing floating point numbers in a computer.

也就是说,担心第 6 位以外的小数位是没有意义的,因为即使将 9 更改为 8 也会导致大约 1 厘米的变化。 GPS 系统目前精确到大约 +/- 5 米,并且在不久的将来可以通过新芯片 being deployed by Broadcom 减少到大约 +/- 30 厘米。

By the way, do you know why the altitude keeps updating/changing, even when the device is standing still on a table?

高度计算是通过计算到每 12 小时绕地球运行一次的可见 GPS 卫星的距离来完成的。由于卫星不断移动,并且不同的卫星进入视野,因此这些计算确实会波动。 This article 虽然有点过时但很有启发性。