ddd.mmss和弧度互相转换工具类

public static class 角度换算
    {
        //将ddd.mmss转为弧度
        static public double DEG(double ang)
        {
            int 符号 = 1;
            if (ang < 0)
            {
                符号 = -1;
                ang = -ang;
            }
            ang += 1.0E-10;//加 1.0E-6 秒
            int 度 = (int)ang;
            double t = (ang - 度) * 100;
            int 分 = (int)(t);
            double 秒 = t - 分 - 1.0E-8;//减 1.0E-6 秒
            if (秒 < 0) 秒 = 0;
            return 符号 * (度 + 分 / 60.0 + 秒 / 36.0) / 180.0 * Math.PI;
        }
        //将弧度转为ddd.mmss
        static public double DMS(double ang)
        {
            int fuhao = 1;
            if (ang < 0)
            {
                fuhao = -1;
                ang = -ang;
            }
            ang = ang * 180.0 / Math.PI + 2.78E-10;//加 1.0E-6 秒
            int d = (int)ang;
            ang = (ang - d) * 60.0;
            int m = (int)ang;
            double s = (ang - m) * 60.0 - 1.0E-6;//减 1.0E-6 秒
            if (s < 0) s = 0;
            return (d + m / 100.0 + s / 10000.0) * fuhao;
        }
    }
posted @ 2022-03-12 14:04  Coder-Wang  阅读(260)  评论(0)    收藏  举报