読者です 読者をやめる 読者になる 読者になる

ふるすたっくえんじにあっぽい人の日記

ASP .NET MVC (C#)、.NET Framework、iOS (Objective-c) アプリ、Androidアプリ (Java)、AWS、たまにLAMPとかプロジェクトマネジメントあたりのお話

【C#】度形式⇔度分秒形式の変換

C#

そーいえば、これ技術ブログなこと忘れてた。

とりあえずソース晒せばいいんでしょ?

数年前に作ったやつ。たしかそんなに誤差はなかった。

        public static string ParseDegreeToDms(double value)
        {
            double tmp = value;
            var degree = (int)Math.Floor(tmp);

            tmp = (tmp - degree) * 60;
            var minutes = (int)Math.Floor(tmp);

            tmp = (tmp - minutes) * 60;

            return string.Format("{0}.{1}.{2}", degree, minutes, tmp.ToString("F3").TrimEnd('0'));
        }

        public static double ParseDmsToDegree(string value)
        {
            var splited = value.Split('.');
            double ret = double.Parse(splited[0]) + double.Parse(splited[1]) / Math.Pow(60, 1)
                + double.Parse(string.Format("{0}.{1}", splited[2], splited[3])) / Math.Pow(60, 2);

            return ret;
        }