我將在DataTable
中獲取數據。我將在foreach
中迭代數據。我將在Datatable
中擁有所有類型的數據。現在我需要爲DataTable
中的每個項目(string
)找到Double
。如何找到IsDouble
的字符串?IsDouble檢查Vb.net中的字符串?
例:
我有"21342.2121"
字符串。我需要將其轉換爲Double
。但有時數據將是"TextString"
。所以我不能使用Double.Parse()
。
如何處理?
我將在DataTable
中獲取數據。我將在foreach
中迭代數據。我將在Datatable
中擁有所有類型的數據。現在我需要爲DataTable
中的每個項目(string
)找到Double
。如何找到IsDouble
的字符串?IsDouble檢查Vb.net中的字符串?
例:
我有"21342.2121"
字符串。我需要將其轉換爲Double
。但有時數據將是"TextString"
。所以我不能使用Double.Parse()
。
如何處理?
這是錯誤的方法,您需要先了解數據表中每列的含義。運行這個程序看看有什麼可能出錯的:
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
嘗試Double.TryParse
。如果該號碼不是有效/可識別的格式,這將返回false,從而允許您在此場景中執行任何您需要的操作。
是的,Double.TryParse應該有助於James123。 – Ram 2010-05-13 14:24:55
Dim val as Double
Double.TryParse("MyString", val)
Double.TryParse("1234.567", val)
First TryParse()將返回false。第二個TryParse()將返回true並將1234.567放入val
。
只是對已經提供的(正確的)答案擴大,這裏的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
請問爲什麼您的存儲兼作字符串和非數字字符串將它們混合值?這似乎是你想避免這樣做的所有成本。
OP可能無法控制數據源。例如,我遇到了這個問題,因爲我正在編寫一些代碼來加載用戶創建的shape文件。我們對允許的數據有限制,但用戶對每列數據類型的要求不太嚴格。出於某種原因,某些用戶使用字符串數據類型而非正確的數據類型生成shapefile更爲簡單。 – jpmc26 2013-10-08 16:27:25
假設「唔哦」表示轉換成功! :-) – Maxime 2012-08-02 20:43:07
以「無限」和超越「NaN」! – 2012-08-02 21:02:13