我的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
非常感谢你!
答案 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