2009-06-17 3 views
-1

Если Double.Parse (list_numbers.Item (я), possibledouble)проверка, является ли строка двойной

list_numbers список строк

list_numbers.Item (я) = "0,000"

possibledouble является двойной

отладчик возвращает «входная строка не в правильном формате»

я думал, что двойной синтаксический анализ будет преобразовать строку в двойной формат «0.0», но это дает мне ошибку. пожалуйста, помогите

+1

Я думаю, вы должны изменить название вопроса, попросить что-то еще ВНУТРИ – Fredou

ответ

2

Ваш код должен, вероятно, выглядеть следующим образом (см ниже для объяснения)

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, она выдает исключение. Я угадываю, где в вашем коде вы поймаете это исключение, не осознавая этого.

Последняя проблема заключается в том, что на самом деле я не нахожу никаких перегрузок для Double.Parse, что кроме строки и double, которые приводят меня к тому, что вы на самом деле должны использовать метод Double.TryParse, а не метод Parse. TryParse вернет true или false, если синтаксический анализ завершился успешно и поместите значение в указанном вами двойнике, если это произойдет.

1

для вас вопрос;

что такое list_numbers? (Массив управления что-то еще??)

небольшое улучшение, вы должны изменить

Select Case CDbl(list_numbers.Item(i)) 

с

Select Case possibledouble 

и для вас вопрос в заголовке;

IsNumeric функция должна быть достаточно в вашем случае я думаю

and you already got how to do it from here

1

... и вы получили лучший ответ на сазе here. см. ответ jvanderh.

Смежные вопросы