为什么我的输出不会显示为小数?

时间:2014-01-21 03:15:04

标签: vb.net visual-studio-2010

所以我有这个程序,它接受列表框中项目的值并将它们放入一个数组中。我唯一的问题是,当列表框中有一个偶数的数字时,它应该将两个值相加并除以2以找到中位数。出于某种原因,它拒绝将其输出为十进制,只是输出一个整数。我试图将所有值更改为小数,但这只会创建一个错误,告诉我'选项严格阻止从长到十进制的转换'或类似的东西(我需要Op stric on)。谁能告诉我为什么我的输出不是以小数形式出现的?

    Dim arrNumbers(lstNumbers.Items.Count), intLength, intNum1, intNum2 As Integer
    Dim decMedian As Decimal


    For i = 0 To lstNumbers.Items.Count - 1

        arrNumbers(i) = CInt(lstNumbers.Items(i))
    Next

    intLength = arrNumbers.Length - 1

    Array.Sort(arrNumbers)


    If intLength Mod 2 <> 0 Then
        MessageBox.Show("Median =" & arrNumbers(arrNumbers.GetUpperBound(0) \ 2 + 1).ToString)

    Else


        intNum1 = arrNumbers(arrNumbers.GetUpperBound(0) \ 2)

        intNum2 = arrNumbers((arrNumbers.GetUpperBound(0) \ 2) + 1)

        decMedian = (intNum1 + intNum2) \ 2

        MessageBox.Show("Median =" & decMedian.ToString("n2"))
    End If

1 个答案:

答案 0 :(得分:4)

替换

decMedian = (intNum1 + intNum2) \ 2

decMedian = (intNum1 + intNum2) / 2

\是整数除法运算符。查看MSDN上的详细信息。