153 \ 100 (153 Mod 100) \ 10 (153 Mod 100 Mod 10)Int()
Int(number) Fix(number) 返回参数的整数部分 如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
Private Sub Command1_Click() Dim x As Single Dim y As Integerx = 3.33333333333 '返回小数的整数部分 y = x / 1MsgBox y End Sub
153 \ 100 '1 (153 Mod 100) \ 10 '5 153 Mod 10 '3
一种完整、安全的做法: Private Sub Command1_Click() Dim tempString As StringDim data() As IntegerDim lngInput As LonglngInput = 12345678tempString = CStr(lngInput)ReDim data(0 To Len(tempString) - 1)For i = 0 To UBound(data) data(i) = CInt(Val(Mid(tempString, Len(tempString) - i, 1))) NextEnd Sub
另外补充一点:如果你的数字长度不定,如果用两位星星用户的方法,则首先要确定 mod 10^n 或 x \ 10^n 中的n ,我觉得应该利用len(ctype(x, string))确定。p.s.刚看这个题目是我的思路就是benyfeifei(狒狒)那样的,但不知道效率怎么样,估计会比 mod 加整除运算慢吧?
Private Sub Command1_Click() Dim data(2) x = 153 data(0) = Int(x / 100) Mod 10 data(1) = Int(x / 10) Mod 10 data(2) = Int(x) Mod 10 Print data(0) Print data(1) Print data(2)End Sub
Dim x As Integer Dim a As Integer, b As Integer, c As Integer Dim data(1 To 3) As Integer x = 153 a = x \ 100 b = (x - 100 * a) \ 10 c = x - 100 * a - 10 * b data(1) = a data(2) = b data(3) = c
dir arr() as string str="123"+" " do while trim(str)>"" redim preserve arr(ubound(arr)) as string arr(ubound(arr))=left(str,1) str=mid(str,2) loop
msgbox cint("1.25")
比如我想得到数据153 的各位数值 存到一个数组中 怎么做?
没有现成的函数,要自己写
(153 Mod 100) \ 10
(153 Mod 100 Mod 10)Int()
Fix(number)
返回参数的整数部分
如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
Dim x As Single
Dim y As Integerx = 3.33333333333
'返回小数的整数部分
y = x / 1MsgBox y
End Sub
(153 Mod 100) \ 10 '5
153 Mod 10 '3
Private Sub Command1_Click()
Dim tempString As StringDim data() As IntegerDim lngInput As LonglngInput = 12345678tempString = CStr(lngInput)ReDim data(0 To Len(tempString) - 1)For i = 0 To UBound(data) data(i) = CInt(Val(Mid(tempString, Len(tempString) - i, 1)))
NextEnd Sub
csdngoodnight(居然比我还快,你真行!)
这两位大哥的方法挺好的。在C语言中,经常也是这样做的。
Dim data(2)
x = 153
data(0) = Int(x / 100) Mod 10
data(1) = Int(x / 10) Mod 10
data(2) = Int(x) Mod 10
Print data(0)
Print data(1)
Print data(2)End Sub
Dim a As Integer, b As Integer, c As Integer
Dim data(1 To 3) As Integer
x = 153
a = x \ 100
b = (x - 100 * a) \ 10
c = x - 100 * a - 10 * b
data(1) = a
data(2) = b
data(3) = c
str="123"+" "
do while trim(str)>""
redim preserve arr(ubound(arr)) as string
arr(ubound(arr))=left(str,1)
str=mid(str,2)
loop