Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用哈弗公式求C中两点之间的距离?_C#_Math_Windows Store Apps_Haversine - Fatal编程技术网

C# 用哈弗公式求C中两点之间的距离?

C# 用哈弗公式求C中两点之间的距离?,c#,math,windows-store-apps,haversine,C#,Math,Windows Store Apps,Haversine,所以我试着用C复制这一页上的距离公式 这是两个坐标之间的距离 这是我的密码 int R = 6371; double Lat1 = ((Double.Parse(SLat))*(Math.PI/180)); double Lat2 = ((Double.Parse(SLat2)) * (Math.PI / 180)); double deltaOmega = (Double.Parse(SLat) - Double.Parse(SLat2)) * (Math.PI / 180); double

所以我试着用C复制这一页上的距离公式

这是两个坐标之间的距离

这是我的密码

int R = 6371;
double Lat1 = ((Double.Parse(SLat))*(Math.PI/180));
double Lat2 = ((Double.Parse(SLat2)) * (Math.PI / 180));
double deltaOmega = (Double.Parse(SLat) - Double.Parse(SLat2)) * (Math.PI / 180);
double deltaLambda = (Double.Parse(SLong) - Double.Parse(SLong2)) * (Math.PI / 180);

double a = Math.Sin(deltaOmega / 2) * Math.Sin(deltaOmega / 2) 
    + Math.Cos(Lat1) * Math.Cos(Lat2) 
    * Math.Sin(deltaLambda / 2) * Math.Sin(deltaLambda/ 2);
double c = 2* Math.Atan2(Math.Sqrt(a), Math.Sqrt(1-a));

double dis = R * c;
但我得到的距离是小数点后两位


有人能验证我对方程式的翻译是否正确吗?

您能显示输入、输出和所需输出吗?我看不出你的代码和链接中的代码有任何明显的区别。我只是用你的代码在链接上尝试了50.06638888 N,5.71472222 W和58.64388888 N,3.07 W的值,得到了968.853。您确定输入的初始值正确地将分和秒转换为小数点吗?