使用C语言将经纬度的度分格式转化为度分秒格式

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

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值