如何把 359.254 转换为 ###°##′##″反过来也可以把 ###°##′##″转换为 312.2546

解决方案 »

  1.   

     static void Main(string[] args)
            {
                //如何把 359.254 转换为 ###°##′##″
                decimal de = 359.554M;
                Int32 a, b, c;
                a = (Int32)de;
                b = (Int32)((de - Convert.ToDecimal(a)) * 60);
                c = (Int32)(((de - Convert.ToDecimal(a)) * 60 - b) * 60);
                Console.WriteLine("{0}==>{1},{2},{3}", de, a, b, c);            // 反过来也可以把 ###°##′##″转换为 312.2546
                a = 359; b = 33; c = 14;
                de = Convert.ToDecimal(a) + Convert.ToDecimal(b) / 60 + Convert.ToDecimal(c) / 60 / 60;
                Console.WriteLine("{0},{1},{2}==>{3:f3}", a, b, c, de);
            }
      

  2.   

    XXX.XXX  计算 =>可以得到num1,num2,num3 吧 
    string Results=String.Format("{0}°{1}′{2}″",num1,num2,num3); 同理
    string st = "101°120′152″";        string[] s1 = st.Split('°');        int num1 = int.Parse(s1[0]);        string[] s2 = s1[1].Split('′');        int num2 = int.Parse(s2[0]);        int num3 = int.Parse(s2[1].Remove(s2[1].LastIndexOf('″')));方法很SB 见笑了
      

  3.   

    LCL_data  的方法非常好用;用 js 怎么实现呢?