分類:[VB.NET/VB2005 以降]
2009/05/21(Thu) 19:32:31 編集(投稿者)
お世話になります。hitoと申します。
現在、VB2008にてフォームの開発をしているのですが、
フォーム上にはDataGridViewを設置しています。
そして、そのDataGridViewには、数値のみを格納した列があります。
まず、その列のすべてのCellの値の合計値をします。
こちらがそのコードです。
'列の合計を求める。
Dim a As String = 0
Dim s As Integer
s = 0
Dim i As DataGridViewRow
For Each i In DataGridView_Sub.Rows
If Not i.IsNewRow Then
a = DataGridView_Sub(1, i.Index).Value
If a <> "" Then
s = s + a
End If
End If
Next i
一応上記のコードで合計値を求めることができます。
次にDataGridViewの1つのCellの値(数値型)を、上記のコードで求めた合計値で割り算をしたいと考えております。
こちらがそのソースになります。
Dim Y As Integer
Y = DataGridView_Sub.CurrentCellAddress.Y
Dim b As Integer = 0
Dim c As Integer = 0
Dim DGV As Integer = 0
DGV = DataGridView1(1, Y).Value
b = (DGV / s)
Round2(b) '<---四捨五入を行う
c = b * 80
仮に、s の値が「14」だとします。
そうしますと、b = (4 / s)の部分で、bの値が0.2857........となります。
やりたい作業は、b の値を算出した直後にbを四捨五入するという仕様を作りたいということなのですが、
四捨五入をする際の計算方法がよく分からないんです・・・。
一応サイトを見て回り、
このようなサンプルコードを発見いたしました。
Function Round2(ByVal A As Double) '四捨五入関数
If A = 0 Then
Round2 = 0
ElseIf A > 0 Then
Round2 = Int(A + 0.5)
Else
Round2 = -Int(-A + 0.5)
End If
End Function
こちらのソースで四捨五入が出来るかと思ったのですが、このファンクションを通ったあと、
どのようにして、元のイベントに戻り値を返したらよいかが分からないんです。
恐縮ですが、Functionを通過した後の、戻り値の取得方法を教えてはいただけないでしょうか。
よろしくお願いします。