none
[VB2005]為何DataGridView會自動幫我某一欄位值進位?? RRS feed

  • 問題

  • 想請問各位前輩

    我使用VB.Net2005中的DataGridView

    一開始我在程式中有設定Me.BGDataGridView1.DataSource是由DataSet中的某一table取得的,而這個table的資料是下SQL向DB取回的

    取回值之後我會再針對欄位MR_Value1做計算後寫回

            For j As Int16 = 0 To Me.BGDataGridView1.RowCount - 1
               Me.DataGridView1.Rows(j).Cells("MR_Value1").Value = Me.BGDataGridView1.Rows(j).Cells("MR_Value1").Value / 7.5
            Next

    由於計算結果往往會有小數點產生

    但是為何在程式執行時,DataGridView都會自動進位為整數 (ex. 6.3  --> 顯示 6)

    我欄位MR_Value1在資料庫中的型態是設定為整數,是因為這個關係嗎??

    我該怎麼讓資料忠實呈現不自動進位??

    我試過加上

    Me.DataGridView1.Columns("MR_Value1").ValueType = System.Type.GetType("System.Single")

    但是依舊是顯示整數

    也試過加上

    Me.DataGridView1.Columns("MR_Value1").DefaultCellStyle.Format = "0.0"

    也沒用

    他還是會先自己進位成整數,之後再多加個0

    (e.x 6.8 --> 顯示7.0)

    請問該怎麼做才好?

    謝謝大家 ~~~~

     

     

    2006年11月3日 下午 04:38

解答

  • 不知道行不行,不过我刚好遇到这个问题,我是这样做的

           dim Dotemp as double =0

           For j As Int16 = 0 To Me.BGDataGridView1.RowCount - 1

               Dotemp=Me.BGDataGridView1.Rows(j).Cells("MR_Value1").Value / 7.5

               Me.DataGridView1.Rows(j).Cells("MR_Value1").Value = Dotemp

            Next

    2006年11月3日 下午 06:41

所有回覆

  • 不知道行不行,不过我刚好遇到这个问题,我是这样做的

           dim Dotemp as double =0

           For j As Int16 = 0 To Me.BGDataGridView1.RowCount - 1

               Dotemp=Me.BGDataGridView1.Rows(j).Cells("MR_Value1").Value / 7.5

               Me.DataGridView1.Rows(j).Cells("MR_Value1").Value = Dotemp

            Next

    2006年11月3日 下午 06:41
  •  Johnsz 寫信:

    不知道行不行,不过我刚好遇到这个问题,我是这样做的

           dim Dotemp as double =0

           For j As Int16 = 0 To Me.BGDataGridView1.RowCount - 1

               Dotemp=Me.BGDataGridView1.Rows(j).Cells("MR_Value1").Value / 7.5

               Me.DataGridView1.Rows(j).Cells("MR_Value1").Value = Dotemp

            Next

    謝謝您的回答

    但是我試了您的方法

    還是不行耶........>///<......

    2006年11月4日 上午 12:10