如果Double.Parse(list_numbers.Item(i)中,possibledouble)檢查如果字符串是雙
list_numbers是字符串的列表
list_numbers.Item(I)= 「0.000」
possibledouble是雙
調試器返回「輸入字符串是不正確的格式」
我認爲雙解析會轉換成字符串雙倍格式的「0.0」,但它給了我一個錯誤。請幫忙
如果Double.Parse(list_numbers.Item(i)中,possibledouble)檢查如果字符串是雙
list_numbers是字符串的列表
list_numbers.Item(I)= 「0.000」
possibledouble是雙
調試器返回「輸入字符串是不正確的格式」
我認爲雙解析會轉換成字符串雙倍格式的「0.0」,但它給了我一個錯誤。請幫忙
你的代碼也許應該是這樣的(參見下面的解釋)
If Double.TryParse(list_numbers.Item(i), possibledouble) Then
Select Case possibledouble
Case 0 To 49.99
list_numbers.Item(i) = ""
Case 59 To 99.99
list_numbers.Item(i) = "1"
Case 100 To 199.99
list_numbers.Item(i) = "2"
Case Is > 200
list_numbers.Item(i) = "3"
Case Else
list_numbers.Item(i) = "n/a"
End Select
End If
那麼有你的代碼的一些問題,據我所看到的,我確信解釋行爲的視寧度。
首先,Double.Parse方法實際上已經爲該項目返回了一個雙精度值,因此稍後不需要再用Cdbl進行轉換。
這條線的另一個更大的問題是,如果該方法不能將字符串轉換爲雙精度型,則會引發異常。我猜你在代碼中的某個位置捕捉異常而不知道它。
最後一個問題是,我實際上找不到Double.Parse的任何重載,除了字符串和double,這導致我相信你實際上是使用Double.TryParse方法而不是Parse方法。如果解析成功,TryParse將返回true或false,並將值設置爲您指定的double值。
給你提問;
什麼是list_numbers? (陣列控制別的東西嗎??)
小的改進,你應該改變
Select Case CDbl(list_numbers.Item(i))
與
Select Case possibledouble
,併爲你的標題問題;
IsNumeric函數應該足夠你的情況,我認爲
...你上了case語句here一個更好的答案。見傑文德的回答。
我認爲你應該改變標題問題,你問別的東西在裏面 – Fredou 2009-06-17 23:34:01