在列表框VB2008中显示十进制类型

时间:2017-06-29 01:29:11

标签: vb.net listbox format-string

我的VB 2008项目有问题。 我有5个只包含数字的文本框。从所有输入的值将显示在列表框中并按升序排序。 我使用下面的代码

Private Sub InptBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InptBtn.Click
    Dim List As New List(Of Double)
    Dim chkList As New Integer
    Dim getData() As String = {Inpt1.Text, Inpt2.Text, Inpt3.Text, Inpt4.Text, Inpt5.Text, Inpt6.Text}

    ' empty check
    For idx As Integer = 0 To getData.Length - 1
        chkList += getData(idx).Trim.Length
    Next

    If chkList = 0 Then
        MessageBox.Show("EMPTY!", "WARNING!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Return
    End If

    ' numeric check
    Dim d1 As Double = 0

    For idx As Integer = 0 To getData.Length - 1
        If Double.TryParse(getData(idx), d1) Then
            List.Add(d1)
        End If
    Next

    If List.Count = 0 Then
        MessageBox.Show("Please fill with number!", "WARNING!", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Return
    End If

    List.Sort()
    ListBox.DataSource = List

End Sub

这是工作!但我有一个问题。 如果我尝试输入

  

0.0000000000001或0.00000000000000000002

它显示为

  

1E-13或2E-20

我尝试使用ToString方法,并按照下面的代码排序后按String更改列表类型,但它不起作用。

For idx As Integer = 0 To getData.Length - 1
        If Double.TryParse(getData(idx), d1) Then
            List.Add(d1.ToString())
        End If
    Next

我输入Decimal类型时是否可以显示所有输入的值?或者有一些方法可以用其他类型显示它? 如下面的列表框所示:

  

0.0000000000001或0.00000000000000000002

非常感谢你!

1 个答案:

答案 0 :(得分:0)

你能试试吗?

For idx As Integer = 0 To getData.Length - 1
    If Double.TryParse(getData(idx), d1) Then
        List.Add(FormatNumber(d1.ToString, 20))
    End If
Next