比如我想得到数据153 的各位数值 存到一个数组中 怎么做?将1存到 data(0) 5存到data(1) 3 存到data(3)

解决方案 »

  1.   

    有没有只取一个小数的整数部分的函数啊? 
    msgbox cint("1.25")
    比如我想得到数据153 的各位数值 存到一个数组中 怎么做?
    没有现成的函数,要自己写
      

  2.   

    153 \ 100
    (153 Mod 100) \ 10
    (153 Mod 100 Mod 10)Int()
      

  3.   

    Int(number)
    Fix(number)
    返回参数的整数部分
    如果 number 为负数,则 Int 返回小于或等于 number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
      

  4.   

    Private Sub Command1_Click()
    Dim x As Single
    Dim y As Integerx = 3.33333333333
    '返回小数的整数部分
    y = x / 1MsgBox y
    End Sub
      

  5.   

    153 \ 100     '1        
    (153 Mod 100) \ 10     '5
    153 Mod 10       '3
      

  6.   

    一种完整、安全的做法:
    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
      

  7.   

    viena(维也纳nn-实心木头人) 
     csdngoodnight(居然比我还快,你真行!) 
    这两位大哥的方法挺好的。在C语言中,经常也是这样做的。
      

  8.   

    另外补充一点:如果你的数字长度不定,如果用两位星星用户的方法,则首先要确定 mod 10^n 或 x \ 10^n 中的n ,我觉得应该利用len(ctype(x, string))确定。p.s.刚看这个题目是我的思路就是benyfeifei(狒狒)那样的,但不知道效率怎么样,估计会比 mod 加整除运算慢吧?
      

  9.   

    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
      

  10.   

    谢谢楼上各位 !!小弟学到很多 ,觉得 viena(维也纳nn-实心木头人) 的方法比较简洁 benyfeifei(狒狒)的方法比较通用,适合任何数据  都是不错的方法!
      

  11.   

    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
      

  12.   

    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