数据源的小数位只有两位,可是在显示的时候,有的显示了6位,怎么使它只显示两位?

解决方案 »

  1.   

    填充单元格时使用Format$(填充的数字,"###.00")
      

  2.   

    我也遇到过类似情况,最后还是逐格填充:Private Sub Form_Load()
        Dim i As Long, j As Long
        Dim cnn As New ADODB.Connection
        Dim rst As New ADODB.Recordset
         
       If cnn.State <> adStateOpen Then
               cnn.CursorLocation = adUseClient
           
                cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\xxx.mdb;"
                
            End If
          
            MSHFlexGrid1.Clear
     rst.Open "select * from table1", cnn, adOpenStatic, adLockReadOnly, adCmdText
                j = 0
    With MSHFlexGrid1
                .Cols = rst.RecordCount + 1
        For i = 0 To RS2.Fields.Count - 1
                 .TextMatrix(0, i) = RS2.Fields(i).Name
                 
            Do While Not rst.EOF
                     j = j + 1
                .Rows = j + 1
                .TextMatrix(i, j) = Round(rst.Fields(i).Value, 2)
                 rst.MoveNext
            Loop
                
        Next
              
         
    End With
    End Sub
      

  3.   

    先用Format(rs.fiels(i),"####.00")格式化,或者用Round(rs.fields(i),2)四舍五入后,再使用循环填充吧,
      

  4.   

    或者使用format循环填充,或者在将数据写入数据源的时候用format先格式化。
      

  5.   

    access的SQL支持VB的函数:
    sql="select format(salary,'0.00') as [salary] from employee"
      

  6.   

    用DATAGRID就没问题,数据从数据库得到的是二位小数,因为我数据库也是限制的二位小数
      

  7.   

    填充单元格时使用Format$(填充的数字,"####0.00")
      

  8.   

    你的數據源是float型的數字吧﹖
    select的時候用round(字段,2)就可以了。