从度数到小数和逆公式的计算
Calculating from Degrees to Decimal and Inverse formula
将度数转换为十进制的公式为:
Decimal= SIGN* Degrees+(Dec. Degrees)/60
如果 SIGN=South 或 West,则 SIGN=-1
但是如果我有十进制值,我怎样才能得到 SIGN、Degrees 和 Dec. Degrees 值?
例如,如果小数 = 50 且 Dec. Degrees = 90,我得到结果 51.5
51.5 = 50 + 90/60
但是在尝试计算逆时我得到了公式:
51.5 = X1+ X2/60
无法理解如何获得 2 个变量 X1 和 X2?
谢谢!
我假设您想从 Decimal Degrees
(DD) 转换为 Degrees,Minutes,Seconds
(DMS),反之亦然。
// Decimal Degrees to Degrees,Minutes,Seconds
D = floor(DD);
M = floor((DD - D) * 60);
S = round((DD - D - M/60) * 3600);
// Degrees,Minutes,Seconds to Decimal Degrees
DD = D + M/60 + S/3600;
// calculations for your case above
DD = 51.5
D = floor(51.5) => D = 51
M = floor((51.5 - 51) * 60) => M = floor(0.5 * 60) => M = 30
S = round((51.5 - 51 - 30/60) * 3600) => S = 0
// so 51.5 DD = 51° 30' 0'' DMS
如果你想保留秒数的小数部分(例如 32.15
而不是 32
),你只需删除 round
调用即可。
编辑:
关于你上面的值 90 分钟 实际上是 1 度和 30 分钟。
您可以在 this page
上自己测试计算
将度数转换为十进制的公式为:
Decimal= SIGN* Degrees+(Dec. Degrees)/60
如果 SIGN=South 或 West,则 SIGN=-1
但是如果我有十进制值,我怎样才能得到 SIGN、Degrees 和 Dec. Degrees 值?
例如,如果小数 = 50 且 Dec. Degrees = 90,我得到结果 51.5
51.5 = 50 + 90/60
但是在尝试计算逆时我得到了公式:
51.5 = X1+ X2/60
无法理解如何获得 2 个变量 X1 和 X2?
谢谢!
我假设您想从 Decimal Degrees
(DD) 转换为 Degrees,Minutes,Seconds
(DMS),反之亦然。
// Decimal Degrees to Degrees,Minutes,Seconds
D = floor(DD);
M = floor((DD - D) * 60);
S = round((DD - D - M/60) * 3600);
// Degrees,Minutes,Seconds to Decimal Degrees
DD = D + M/60 + S/3600;
// calculations for your case above
DD = 51.5
D = floor(51.5) => D = 51
M = floor((51.5 - 51) * 60) => M = floor(0.5 * 60) => M = 30
S = round((51.5 - 51 - 30/60) * 3600) => S = 0
// so 51.5 DD = 51° 30' 0'' DMS
如果你想保留秒数的小数部分(例如 32.15
而不是 32
),你只需删除 round
调用即可。
编辑:
关于你上面的值 90 分钟 实际上是 1 度和 30 分钟。
您可以在 this page