c# - c#中2个陆地点之间的距离计算
问题描述
使用下面的函数,我通过传递纬度 (a)、纬度 (b)、经度 (a)、经度 (b) 来计算 2 个陆地点之间的距离,并使用下面给出的公式以公里为单位进行计算,但结果不是正确,我该如何解决?
代码 C#:
public static double CalcoloDistinzaFra2PuntiTerrestri(double LatA, double LonA, double LatB, double LonB)
{
double tot = 0;
const double R = 6371;
const double pigreco = 3.1415927;
double lat_alfa, lat_beta;
double lon_alfa, lon_beta;
double fi, p;
lat_alfa = pigreco * LatA / 180;
lat_beta = pigreco * LatB / 180;
lon_alfa = pigreco * LonA / 180;
lon_beta = pigreco * LonB / 180;
fi = Math.Abs(lon_alfa - lon_beta);
p = Math.Acos(Sin(lat_beta) * Sin(lat_alfa) + Cos(lat_beta) * Cos(lat_alfa) * Cos(fi));
tot = p * R;
return tot;
}
解决方案
我该如何解决?
您通过将程序分解成越来越小的部分来解决计算机编程中的问题,以发现哪个部分不正确。
你知道计算不正确,这意味着你必须知道正确答案是什么。那太棒了; 这就是你会发现问题的方式:
- 手工计算出你认为程序中每个表达式的正确值。
- 然后编写一个程序来依次计算每个表达式。
- 然后将该程序与您对该步骤的正确值的预测进行比较。
- 在某些时候,程序和您的手动计算会有所不同。 这就是错误所在。
推荐阅读
- excel - 运行时错误“1004”。应用程序定义或对象定义的错误
- swiftui - 如何在 CommandGroup 中使用 CommandMenu?
- python - Scrapy绕过数据使用同意墙
- javascript - JavaScript 中的数组对象分组
- python - 如何从一个变量中对列表进行单位化?
- github - 为什么说 BuildTools 在 GItHub 而不是我的帐户中推送更改?
- raspberry-pi3 - 从 U-Boot 引导 Linux。Raspberry pi 3 b plus - U-Boot,bootz 命令不存在默认配置
- batch-file - 通过批处理脚本将文件上传到s3浏览器
- javascript - React.js,Material Ui Stepper 方向
- sympy - 用 SymPy 找到泊松分布的模式