Ошибка отладки - преобразование из строки в двойную - PullRequest
0 голосов
/ 12 января 2011

Я делаю некоторую отладку ошибок, пытаясь свести ошибки на нашем сайте к минимуму, и, кажется, есть ошибка, которая появляется довольно много

Преобразование из строки ""тип Double не действителен.

Я не могу воспроизвести эту проблему, но вижу, что это происходит.

Я просматривал код водну из страниц и прогулялся по этому

Dim varWeek As String

If varWeek < 10 Then
    'Do something'
End If

Может ли это быть причиной проблемы, когда он пытается определить, меньше ли String 10, что является Integer?

Как я уже говорил ранее, я не вижу этой ошибки, поэтому изменение ее на Integer ничего не меняет в моей системе.

Спасибо.

Ответы [ 4 ]

3 голосов
/ 12 января 2011

Я не вижу причин, почему это преобразование должно привести к двойному. Скорее всего, у вас есть операция, где двойник должен соответствовать.

Как правило, перед выполнением операций я использовал бы преобразования, например ::1003

If Convert.ToInt32( varWeek ) < 10 Then

и т. Д.

1 голос
/ 12 января 2011

Ошибка вызвана тем, что ваша строка пуста "".

Вы должны выполнить какую-то проверку на наличие ошибок в строке перед сравнением ее с числом.

Вы могли бы сделать что-токак это:

Dim varWeek As String
If IsNumeric(varWeek)
   If varWeek < 10 Then
      Do something
   End If
Else
   Handle your error here, probably feed back to the user that their input is invalid
End If
1 голос
/ 12 января 2011

Я думаю, вы сами ответили.

Попробуйте преобразовать эту строковую переменную в целое число. Например, используйте:

Dim varWeek As String

If Val(varWeek) < 10 Then
'Do something
End If

Я не уверен, что вы уже пробовали, но вы использовали оператор Try Catch? Таким образом, вы сможете увидеть, откуда исходит ошибка.

Отладка на приятеле;)

0 голосов
/ 12 января 2011

Если ваше сообщение является сообщением об исключении, это сбой преобразования. Если вы передаете пустую строку (ваше "") в Convert.ToDouble, Double.Parse (в C #), он запускает исключение FormatException.

Вы можете избежать этого, используя Double.TryParse .

...