有沒有人知道簡單的短代碼轉換而不使用額外的庫?由c轉換十進制座標爲度,分和秒#
1
A
回答
5
像這樣:
double coord = 59.345235;
int sec = (int)Math.Round(coord * 3600);
int deg = sec/3600;
sec = Math.Abs(sec % 3600);
int min = sec/60;
sec %= 60;
編輯:新增的ABS呼叫,使其適用於負角度也。
2
我從你的問題推斷,你想從笛卡爾轉換爲極座標。
如果是這種情況,則需要的基本公式是:
R =√(X2 + Y2)
θ= ATAN(Y/X)
在哪裏r是距離,θ是從x = 0(大約原點)的角度
這是否有幫助?
3
你可以使用入庫時間:(棘手,但它的工作原理)
double coord = 123.312312;
var ts = TimeSpan.FromHours(Math.Abs(coord))
int degrees = Math.Sign(coord) * Math.Floor(ts.TotalHours);
int minutes = ts.Minutes;
int seconds = ts.Seconds;
+0
Interresting,但因爲它不是在所有的時間它可能是一個有點混亂...而且它不會爲負角度的工作... – Guffa 2010-07-06 15:53:51
+0
@Guffa,我同意!這是一個'wtf ?? !!'確定..但很好奇和照亮,因爲它說明(並利用)兩個數據結構之間的並行。 (固定它來處理底片) – 2010-07-06 16:45:45
1
我想出了以下內容。它可以正確處理負座標(南緯或西經),並返回未被嚴格分爲幾分或幾秒的餘數(以度爲單位)。
public static double ConvertDecimalToDegMinSec(double value, out int deg, out int min, out int sec)
{
deg = (int)value;
value = Math.Abs(value - deg);
min = (int)(value * 60);
value = value - (double)min/60;
sec = (int)(value * 3600);
value = value - (double)sec/3600;
return value;
}
相關問題
- 1. 轉換度座標爲十進制
- 2. 如何在度,分,秒之間轉換十進制座標
- 3. 將十進制座標轉換成度,分,秒,方向
- 4. 轉換度/分/秒到十進制度
- 5. AS3 - 公式將十進制座標轉換爲DMS格式(度,分,秒)
- 6. 轉換地理距離度座標轉換爲十進制
- 7. 將十進制度轉換爲十分之幾秒。
- 8. 如何將GPS度數,分鐘,秒轉換爲度,十進制分/秒?
- 9. 將十進制經度/緯度座標轉換爲iPad屏幕座標
- 10. mysql如何十進制值轉換爲度,分,秒
- 11. MySQL轉換度,分,秒到度十進制
- 12. 使用VBA將十進制數轉換爲分鐘和秒
- 13. 在XSL中將地理座標從度 - 小時 - 分鐘轉換爲十進制
- 14. 緯度和經度不斷改變每次我從度分秒轉換爲十進制度在C#
- 15. 將十進制轉換爲十六進制和十六進制
- 16. 使用熊貓度,分,秒轉換爲十進制度沒有顯式迭代
- 17. 在Java中將十進制度數或度分秒轉換爲米
- 18. C#System.OverflowException二進制到十進制和十六進制轉換
- 19. 如何十六進制或十進制轉換爲二進制目標C
- 20. 十六進制和十進制轉換
- 21. 將十進制轉換爲小時:分鐘:秒
- 22. 將十進制表示時間轉換爲小時,分鐘,秒
- 23. 將十進制小時轉換爲小時分秒
- 24. 將北/西座標轉換爲十進制值
- 25. 如何將GPS座標轉換爲十進制的Lua?
- 26. 將八進制數轉換爲十進制和十六進制
- 27. 如何在Delphi中將十進制座標轉換爲結構化座標?
- 28. 將弧度轉換爲度,分和秒
- 29. 轉換UTM爲十進制度R中
- 30. 將ISO 6709格式化的GPS座標轉換爲R中的十進制度
需要一個例子 – w69rdy 2010-07-06 15:26:54