我想把一个随机产生的小于100的整数转换成2个字符,比如59转成“59”,但我还希望当数字小于10时会在前面加“0”,比如8转成“08”。
如果用IF来判断的话太麻烦,有没有最简单高效的方法?
谢谢.

解决方案 »

  1.   

    if len(num)=1 then
      num='0' & num
    end if
      

  2.   

    Private Sub Command2_Click()
        Dim num As Integer
        num = Int(Rnd() * 10 + 1)
        MsgBox Format(CStr(num), "00")
    End Sub
      

  3.   

    因为我想把很多转换后的字符加起来,我希望可以写成这样:
    结果=表达式1 & 表达式2 & 表达式3 & 表达式4 & 表达式5 
    如果用IF的话,不是要用到好多的变量?
      

  4.   

    SoHo_Andy的方法很好啊。我回去试试。谢谢。
      

  5.   

    Right("0" & int(100*rnd), 2)
      

  6.   

    Private Sub Command1_Click()
        Dim num As Integer
        num = Int(Rnd() * 10 + 1)
        MsgBox Format(CStr(num), "00")
    End Sub
      

  7.   

    楼上的Format(CStr(num), "00")就不错啊
    不知道vb里有没有3目运算
    如果有的话可以这样,像c或java等等一样
    v1 = num>9?CStr(num):"0"&CStr(num)
      

  8.   

    v1 =iif(num>9,CStr(num),"0"&CStr(num))
      

  9.   

    把小于100的数,大于10的数转换为16进制的数,使用一个涵数。
    如果小于10的数,可以这样写:
      if len(num)=1 then
          num="0"+num
      end if
      

  10.   

    这样可以:
        Format(Int(Rnd() * 100), "00")
      

  11.   

    Private Sub Command1_Click()
        For a = 0 To 20
           b = b & " " & Format(CStr(Int(Rnd() * 99 + 1)), "00")
        Next a
        MsgBox b
    End Sub
      

  12.   

    我试了,用Format 是最好的。
      

  13.   

    Right("0" & (Rnd() * 100 \ 1), 2)
      

  14.   

    public funtion num( num as interger)
      if len(num)=1 then
          num="0"+num
      end if
    end funtion
      

  15.   

    public funtion funNum( num as interger) as string
      if len(num)=1 then
          funNum="0"+num
      end if
    end funtion
      

  16.   

    用if麻烦吗?i don't think so