Archived
34 lines
982 B
C
34 lines
982 B
C
#ifndef _DEG2DMS_H_
|
|
#define _DEG2DMS_H_
|
|
|
|
#include<stdlib.h>
|
|
#include<math.h>
|
|
|
|
typedef struct
|
|
{
|
|
double D;
|
|
double M;
|
|
double S;
|
|
}deg2dms, *pdeg2dms;
|
|
|
|
/* -------------------------------------------------------------------------- */
|
|
/// @brief 将十进制的度数转换为度分秒形式
|
|
/// @param deg2dms 结构体传递参数
|
|
/// @param D 要转换度数
|
|
/// @return 返回自定义结构体包含度,分,秒成员
|
|
/* -------------------------------------------------------------------------- */
|
|
pdeg2dms DEG2DMS(pdeg2dms deg2dms,
|
|
double D)
|
|
{
|
|
deg2dms = (pdeg2dms)malloc(sizeof(pdeg2dms));
|
|
int sig = D / fabs(D);//符号判断
|
|
deg2dms->D = (int)(D);//转换为度分秒
|
|
deg2dms->M = (int)((D - deg2dms->D) * 60);//分秒去除符号格式
|
|
deg2dms->S = (int)(((D - deg2dms->D) * 60 - deg2dms->M) * 60);
|
|
deg2dms->M = deg2dms->M * sig;
|
|
deg2dms->S = deg2dms->S * sig;
|
|
|
|
return deg2dms;
|
|
}
|
|
|
|
#endif |