2014-05-08 35 views
2

嘿傢伙即時對學校和項目一期工程的工作就需要輸入小數座標,並將其轉換爲結構化格式的用戶,即:如何在Delphi中將十進制座標轉換爲結構化座標?

17.428333° - > 17°25' 42"

有誰可能知道如何做到這一點還計劃應該能夠做到這一點相反的方式;進入結構化座標17° 25' 42"和隱蔽到小數點座標17.4283333

我已經習慣了基本的數學。爲convertin G。爲了從結構化座標轉換爲小數座標可以使用以下:

17 +六十〇分之二十五+三千六分之四十二

,並從十進制隱蔽結構取第一值17作爲度,則摸出分鐘

17.4285-17 = 0.4285×60 = 25.71

擺脫的小數或四捨五入小數點拿到分鐘,然後制定出秒

25.71-25 = 0.71 * 60 = 42.6

要麼舍入小數或擺脫了小數的幾秒鐘。

+2

目前尚不清楚你的問題是什麼。你似乎知道如何進行轉換。有什麼問題? –

+0

你有算法,現在只需在Delphi中編寫它。 –

回答

3

我們假設你從一個浮點數變量x中的一個座標開始。計算如下所示的度,分和秒:

Degrees := Trunc(x); 
x := (x - Degrees)*60; 
Minutes := Trunc(x); 
x := (x - Minutes)*60 
Seconds := Round(x); 

反方向更簡單。你需要的表達是:

Degrees + Minutes/60 + Seconds/3600 
+0

謝謝你,但如何將一個用戶輸入值分配給浮點變量?對不起,我的愚蠢對這種語言仍然很新穎 – Stew22

+1

您將TEdit放在您的表單和一個按鈕上,當用戶單擊按鈕時,您將執行F:= TryStrToFloat(Edit1.Text)http://docs.embarcadero.com/products /rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/[email protected]@Double.html –

+1

@ Stew22 StrToFloat函數和修改 – MBo

相關問題