例如:
整數部分能取值到百位數的直接取整,比如102.98取整后等于10; 54.76取整后等于54;-65.3取整為-65
不足兩位的,比如1.432處理結果14;-0.987處理結果-98 ;0.0144處理結果14
我將處理邏輯歸納為:整數,小數(只處理到小數點后4位,大于4位的直接回傳0)
整數部分:分為大于等于2位的直接取值和不滿足兩位乘以10后取值
小數部分:直接乘以10000取前兩位
邏輯好理解但是本人的編程水平太差了,只能求教各位老師了。
uj5u.com熱心網友回復:
樓主看看這個如何:Option Explicit
Private Function ValueTransform(ByVal dVal As Double) As Long
Dim iFlag As Long
Dim v As Long
iFlag = 1& Or (dVal < 0)
dVal = Abs(dVal)
If (dVal < 10) Then
dVal = 10000# * dVal
Else
Do
If (dVal < 1000000#) Then Exit Do
dVal = dVal / 10000#
Loop
End If
v = Int(dVal)
Do
If (v < 100&) Then Exit Do
v = v \ 10&
Loop
ValueTransform = iFlag * v
End Function
Private Sub Command1_Click()
Debug.Print "-3555 = ", ValueTransform(-3555)
Debug.Print "-0.00123 = ", ValueTransform(-0.00123)
Debug.Print "0.000089 = ", ValueTransform(0.000089)
Debug.Print "-73555 = ", ValueTransform(-73555)
Debug.Print "-65.3 = ", ValueTransform(-65.3)
Debug.Print "1.432 = ", ValueTransform(1.432)
' 用“字串”也可以,但必須是合法的“數值格式”
Debug.Print "-0.987 = ", ValueTransform("-0.987e56")
End Sub
' 測驗結果:
'-3555 = -35
'-0.00123 = -12
'0.00008 = 0
'-73555 = -73
'-65.3 = -65
'1.432 = 14
'-0.987e56 = -98
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/80906.html
標籤:VB基礎類
