gpt4 book ai didi

ios - 距离计算,acos = Nan 而不是0

转载 作者:搜寻专家 更新时间:2023-11-01 06:34:03 24 4
gpt4 key购买 nike

我的距离计算函数有一点问题,这是一个 Playground 的截图,当 tsum == 1 时,我们看到距离变量 == NaN(而不是 0)

playground showing problem

实际上在运行时(在我的真实应用程序中,在模拟器中),t1 + t2 + t3 == 1.0000000000000002

t1 + t2 + t3 == 1.0000000000000002

这真的很奇怪,因为当我手动计算它时,我有 1

manual calculation

但是ios好像不同意。你能解释一下吗?

P.S : 这是 Playground 的链接 https://drive.google.com/drive/folders/0B6uRRn4bFMAeN3kwSVc4dUVQcDQ?usp=sharing

P.S.2 : 我给了一个截图来证明我没有操纵值: complete screenshot at runtime

最佳答案

如果您正在寻找适用于苹果平台的东西,请使用

import CoreLocation

let lat0 = 0.0
let lon0 = 0.0

let lat1 = 90.0
let lon1 = 180.0

let l0 = CLLocation(latitude: lat0, longitude: lon0)
let l1 = CLLocation(latitude: lat1, longitude: lon1)

let distance = l0.distance(from: l1) // in meters

如果你不喜欢,就替换你的公式

d = acos( sin φ1 ⋅ sin φ2 + cos φ1 ⋅ cos φ2 ⋅ cos Δλ ) ⋅ R

a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)

c = 2 ⋅ atan2( √a, √(1−a) )

d = R ⋅ c

这被称为haversine 公式。借助 atan2 函数,您可以避免 float 学问题

关于ios - 距离计算,acos = Nan 而不是0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701178/

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