0x00前言
文章中的文字可能存在语法错误以及标点错误,请谅解;
如果在文章中发现代码错误或其它问题请告知,感谢!
0x01代码实现
#include<stdio.h>
int ChangetoSexagesimal(float Num, int *a, int *b, int *c)
{
float e;
int Hour,Minute,Second;
Hour = (int)(Num); //度
Minute = (int)((Num-Hour)*60); //分
Second = (int)(((Num-Hour)*60 - Minute) *60); //秒
e = ((Num-Hour)*60 - Minute) *60 - Second; //四舍五入
if(5 <=(int)(e *10) )
{
Second = Second + 1;
}
if(60 == Second)
{
Second = 0;
Minute = Minute + 1;
}
if(60 == Minute)
{
Minute = 0;
Hour = Hour + 1;
}
*a = Hour;
*b = Minute;
*c = Second;
return 1;
}
int main()
{
float LongtitudeNumber = 0;
float LatitudeNumber = 0;
int LongtitudeHour = 0;
int LongtitudeMinute = 0;
int LongtitudeSecond = 0;
int LatitudeHour = 0;
int LatitudeMinute = 0;
int LatitudeSecond = 0;
printf("your input Longtitude:\n");
scanf("%f", &LongtitudeNumber);
printf("your input Latitude:\n");
scanf("%f", &LatitudeNumber);
(void)ChangetoSexagesimal(LongtitudeNumber, &LongtitudeHour, &LongtitudeMinute, &LongtitudeSecond);
(void)ChangetoSexagesimal(LatitudeNumber, &LatitudeHour, &LatitudeMinute, &LatitudeSecond);
printf("Longtitude Hour Minute Second is %d,%d,%d\n",LongtitudeHour, LongtitudeMinute, LongtitudeSecond);
printf("Latitude Hour Minute Second is %d,%d,%d\n",LatitudeHour, LatitudeMinute, LatitudeSecond);
return 0;
}
0x02运行结果
运行结果如下图:
对比通过经纬度转换查询网站:http://www.minigps.net/fc.html 的转换结果:
以上。
参考文档:
https://zhidao.baidu.com/question/576460031.html?qbl=relate_question_2&word=��γ�� ʱ���� ת��
https://wenku.baidu.com/view/ac5203fc5ff7ba0d4a7302768e9951e79b896984.html