Public Function YXSZ(X, n As Integer) 'n爲有效數字位數
Dim jk, j
Dim Y As Single
Dim temp As String
Dim zfh As Integer
zfh = 1
If X = "" Or (Not Application.WorksheetFunction.IsNumber(X)) Then mYX = "?Value!": Exit Function
X = Val(X)
If n < 1 Then mYX = X: Exit Function
If X <= 0 Then
zfh = -1
X = X * zfh
End If
If X < 1 Then
j = 1
Do
temp = CStr(X)
j = j + 1
Loop Until Val(Mid$(temp, j, 1)) > 0
j = j + n
X = X * 10 ^ j
jk = Len(CStr(Int(X))) - n
Y = X / 10 ^ jk + 0.5
YXSZ = Int(Y) * 10 ^ jk / 10 ^ j* zfh
X = X / 10 ^ j
Else
jk = Len(CStr(Int(X))) - n
Y = X / 10 ^ jk + 0.5
YXSZ = Int(Y) * 10 ^ jk * zfh
End If
End Function