嘿,我正在为学校做一个项目,在该项目中,它要求用户输入十进制坐标并将其转换为结构化格式,即:
17.428333° --> 17° 25' 42"
有人知道如何做到这一点吗?此外,程序应该能够以相反的方式执行此操作;输入结构化坐标17° 25' 42"
并转换为十进制坐标17.4283333
。
我已经掌握了用于转换的基本数学知识。要将结构化坐标转换为十进制坐标,您可以使用以下命令:
17+25/60+42/3600
从十进制转换为结构化,将第一个值17
作为度数,然后计算出分钟
17.4285-17=0.4285*60=25.71
去掉小数点或对小数点进行四舍五入以获得分钟,然后计算出秒
25.71-25=0.71*60=42.6
四舍五入小数点或去掉小数秒。
最佳答案
假设您从浮点变量 x
中的坐标开始。像这样计算度、分和秒:
Degrees := Trunc(x);
x := (x - Degrees)*60;
Minutes := Trunc(x);
x := (x - Minutes)*60
Seconds := Round(x);
相反的方向更简单。您需要的表达式是:
Degrees + Minutes/60 + Seconds/3600
关于delphi - 如何在Delphi中将十进制坐标转换为结构化坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545596/