VB编制角度(度,分,秒)转为弧度的子函数

如题所述

Public Function RAD(ByVal DEGREE As String) As Double
Rem*****#XXXXXXX.XX"--> RAD
Rem*****#表示输入XXXXXXXXXX"前所带有的符号,其若为"-"号,输出时即取之
Rem*****其若为"+"号,输出时可使用空格顶位
Rem*****DEFREE如"-2 45 18.46"的形式,即度可为1-4位,(可含有一个符号位),分及秒的整数部分必须为两位,度与分之间,分及秒之间必须空一个格
Rem*****具有测试DEGREE的前面是否带有"+"或"-"号的功能

Dim G As String
Dim G1 As Double
Dim d As Boolean

Dim DEG11 As Double
Dim DEG12 As Double
Dim DEG13 As Double

DEGREE = DEGFORMAT(DEGREE)

G = Left(Trim(Left(DEGREE, 3)), 1)

If G = "-" Then
G1 = -1
ElseIf G = "+" Then
G1 = 1
Else
G1 = 1
End If

DEG11 = Abs(Val(Left(DEGREE, 4)))

DEG12 = Val(Mid(DEGRE, 6, 2))
DEG12 = Val(Mid(DEGRE, 6, 2)) / 60
DEG13 = Val(Right(DEGREE, Len(DEGREE) - 8)) / 3600
RAD = G1 * (DEG11 + DEG12 + DEG13) * PI() / 180

End Function
温馨提示:答案为网友推荐,仅供参考