我将在DataTable
中获取数据。我将在foreach
中迭代数据。我将在Datatable
中包含所有类型的数据。现在,我需要为Double
中的每个项目string
找到DataTable
。如何找到字符串IsDouble
?
例如:
我有"21342.2121"
字符串。我需要将其转换为Double
。但有时数据将为"TextString"
。所以我不能使用Double.Parse()
。
如何处理?
答案 0 :(得分:7)
Dim val as Double
Double.TryParse("MyString", val)
Double.TryParse("1234.567", val)
首先TryParse()将返回false。第二个TryParse()将返回true并将1234.567放入val
。
答案 1 :(得分:6)
试试Double.TryParse
。如果数字不是有效/可识别的格式,则返回false,允许您在此方案中执行任何操作。
答案 2 :(得分:5)
为了扩展已经提供的(正确)答案,这里有一个完整的代码示例,说明如何使用Double.TryParse
:
Dim value As Double
If Double.TryParse(stringFromDataTable, value) Then
' text has been parsed as value, '
' so you can use value however you see fit '
Else
' text was not a valid double, so you can '
' notify the user or do whatever you want... '
' note that value will be zero in this case '
End If
答案 3 :(得分:2)
我可以问为什么你的存储兼作字符串并将它们与非数字字符串值混合?看起来好像你想避免这么做所有费用。
答案 4 :(得分:1)
这是错误的方法,您需要预先知道数据表中每列的代表。运行此程序以查看可能出现的问题:
Module Module1
Sub Main()
Dim value As Double
If Double.TryParse("1e0", value) Then
Console.WriteLine("Uh-oh")
End If
Console.ReadLine()
End Sub
End Module