1.233 个位数
10.1 十位数
120.3 百位数
2310.88千位数
52698.987万位数。
请问,如何判断。谢谢。

解决方案 »

  1.   

    找小数点的位置就可以了
    Private Sub Command1_Click()
        MsgBox InStr(1, Text1, ".") - 1
    End Sub
      

  2.   

    如果只是你说的这种情况(那几个数字),直接用left就行了。
      

  3.   


    Private Sub Command1_Click()
        Dim a(4) As Single, i As Integer
        a(0) = 1.233
        a(1) = 10.1
        a(2) = 120.3
        a(3) = 2310.88
        a(4) = 52698.987
        
        For i = 0 To 4
            Select Case Len(CStr(Int(a(i))))
                Case 1
                   Debug.Print "个位数"; a(i)
                Case 2
                   Debug.Print "十位数"; a(i)
                Case 3
                   Debug.Print "百位数"; a(i)
                Case 4
                   Debug.Print "千位数"; a(i)
                Case 5
                   Debug.Print "万位数"; a(i)
            End Select
        NextEnd Sub
      

  4.   


    看来发帖表述不清。目标是根据位数确定round(xx,x)
    个位数round(x,3)
    十位数取Round(x,2)
    百位数取round(x,1)
    千位数以上round(x,0)
    谢谢,各位的回复。
    谢谢楼上的程序。
      

  5.   


    满足目标需求的程序
    Private Sub Command1_Click()
        Dim a(5) As Single, i As Integer
        a(0) = 1.233
        a(1) = 10.1
        a(2) = 120.3
        a(3) = 2310.88
        a(4) = 52698.987
        a(5) = 1035.666145    
        ''
        For i = 0 To 4
            Select Case Len(CStr(Int(a(i))))
                Case 1
                   Debug.Print "个位数"; Round(a(i), 3)
                Case 2
                   Debug.Print "十位数"; Round(a(i), 2)
                Case 3
                   Debug.Print "百位数"; Round(a(i), 1)
                Case Is > 4
                   Debug.Print "大于千位数"; Round(a(i), 0)
                'Case 5
                  ' Debug.Print "万位数"; a(i)
            End Select
        NextEnd Sub结果
    个位数 1.233 
    十位数 10.1 
    百位数 120.3 
    大于千位数 2311 
    大于千位数 52699 
    大于千位数 1036 
      

  6.   

    int(x)→判断len(cstr(X))判断位数,比left,mid简单实用。
    谢谢各位的回复。
      

  7.   

    Private Sub Command1_Click()
        
        Dim i As Integer
        
        i = InStr(1, Text1, ".") - 1
        
        If i >= 4 Then
            i = 0
        Else
            i = 4 - i
        End If
        
        Text2 = Round(Text1, i)
    End Sub
      

  8.   

    Private Sub Command1_Click()    Text2 = fun_Round(Text1)
        
    End SubPrivate Function fun_Round(ByVal sngSource As Single) As Single
        Dim i As Integer
        
        i = InStr(1, sngSource, ".") - 1
        
        If i >= 4 Then
            i = 0
        Else
            i = 4 - i
        End If
        
        fun_Round = Round(sngSource, i)
        
    End Function