zoukankan      html  css  js  c++  java
  • 度分秒和度的转换

    输入的经纬度是 118.8000745,转换为度分秒的格式
    计算:度 就是 118度; 
              分 用小数部分0.8000745 * 60 = 48.00447,分就是48分;
              秒 用分的小数部分 0.00447 * 60 = 0.2682 秒

    写了个QAngle类,头文件qangle.h

     1 #ifndef QANGLE_H
     2 #define QANGLE_H
     3 
     4 #include <QObject>
     5 
     6 class QAngle : public QObject
     7 {
     8     Q_OBJECT
     9 public:
    10     QAngle(QObject *parent);
    11     QAngle(double angle);
    12     QAngle(int nDegree,    int nMinute,int nSecond);
    13     QString getDDMMSS();
    14     ~QAngle();
    15 private:
    16     double dAngle;//dAngle——角度, 单位度(°)
    17     int nDegree;
    18     int nMinute;
    19     int nSecond;
    20     void ConvertToAngle();
    21     void ConvertToddmmss( int nPrecision);
    22 };
    23 
    24 #endif // QANGLE_H

    实现文件qangle.cpp

      1 #include "qangle.h"
      2 
      3 QAngle::QAngle(QObject *parent)
      4     : QObject(parent)
      5 {
      6 
      7 }
      8 QAngle::QAngle(double angle)
      9 {
     10     dAngle=angle;
     11     ConvertToddmmss(3);
     12 }
     13 QAngle::QAngle(int _Degree,    int _Minute,int _Second)
     14 {
     15     nDegree=_Degree;
     16     nMinute=_Minute;
     17     nSecond=_Second;
     18     ConvertToAngle();
     19 }
     20 void QAngle::ConvertToAngle()
     21 {
     22     dAngle=nDegree+nMinute/60+nSecond/3600;
     23 }
     24 QString QAngle::getDDMMSS()
     25 {
     26     QString strDDMMSS;
     27     strDDMMSS.append(QString::number(nDegree));
     28     strDDMMSS.append(QString::fromLocal8Bit("°"));
     29     strDDMMSS.append(QString::number(nMinute));
     30     strDDMMSS.append(tr("'"));
     31     strDDMMSS.append(QString::number(nSecond));
     32     strDDMMSS.append(tr("""));
     33     return strDDMMSS;
     34 }
     35 //nPrecision——精度, 1:度、2:分、3:秒
     36 void QAngle::ConvertToddmmss(int nPrecision)
     37 {
     38     if (1 == nPrecision)    //
     39     {
     40         int nDegree = int(dAngle);
     41         if (fabs(dAngle - nDegree) > 0.5)
     42         {
     43             // 四舍五入
     44             nDegree += 1;
     45         }
     46         if (nDegree > 360)
     47         {
     48             nDegree -= 360;
     49         }
     50         //strDimText.Format(_T("%d°"), nDegree);
     51     }
     52     else if (2 == nPrecision) //
     53     {
     54         int nDegree = int(dAngle);
     55         int nMinute = int((dAngle - nDegree) * 60);
     56         if (fabs((dAngle - nDegree) * 60 - nMinute) > 0.5)
     57         {
     58             // 四舍五入
     59             nMinute += 1;
     60         }
     61         if (nMinute >= 60)
     62         {
     63             nMinute = 0;
     64             nDegree += 1;
     65         }
     66         if (nDegree > 360)
     67         {
     68             nDegree -= 360;
     69         }
     70         //strDimText.Format(_T("%d°%d'"), nDegree, nMinute);
     71     }
     72     else if (3 == nPrecision)    //
     73     {
     74         nDegree = int(dAngle);
     75         nMinute = int((dAngle - nDegree) * 60);
     76         nSecond = int(((dAngle - nDegree) * 60 - nMinute) * 60);
     77 
     78         if (fabs(((dAngle - nDegree) * 60 - nMinute) * 60 - nSecond) > 0.5)
     79         {
     80             // 四舍五入
     81             nSecond += 1;
     82         }
     83         if (nSecond >= 60)
     84         {
     85             nSecond = 0;
     86             nMinute += 1;
     87         }
     88         if (nMinute >= 60)
     89         {
     90             nMinute = 0;
     91             nDegree += 1;
     92         }
     93         if (nDegree > 360)
     94         {
     95             nDegree -= 360;
     96         }
     97         //strDimText.Format(_T("%d°%d'%d""), nDegree, nMinute, nSecond);
     98     }    
     99 }
    100 QAngle::~QAngle()
    101 {
    102 
    103 }
  • 相关阅读:
    软件工程实践2019第五次作业
    登录页面JS前端加密绕过
    《软件架构设计》阅读笔记*part1
    软件架构师
    软件质量属性
    架构漫谈读后感
    TensorFlow K近邻算法(基于MNIST数据集)
    以《淘宝网》为例,描绘质量属性的六个常见属性场景
    机器学习十讲——第十讲学习总结
    机器学习十讲——第九讲学习总结
  • 原文地址:https://www.cnblogs.com/yhlx125/p/3139072.html
Copyright © 2011-2022 走看看