我正在做一些错误调试,试图将我们网站上的错误降到最低,似乎出现了很多错误
从字符串“”到“Double”类型的转换无效。
我无法复制这个问题,但我可以看到它正在发生。
我一直在查看其中一个页面中的代码,然后在这个
中漫步Dim varWeek As String
If varWeek < 10 Then
'Do something'
End If
这是否会导致问题,因为它正试图查看String
是否小于10
Integer
?
正如我之前所说,因为我无法在第一时间看到此错误,因此将其更改为Integer
并不会改变我系统上的任何内容。
感谢。
答案 0 :(得分:3)
我看不出为什么这种转换应该导致双倍的原因。 很可能你有一些双重应该适合的操作。
通常,我会在尝试操作之前使用转换,例如:
If Convert.ToInt32( varWeek ) < 10 Then
等等。
答案 1 :(得分:1)
我认为你自己回答了。
尝试将该String变量转换为整数。例如使用:
Dim varWeek As String
If Val(varWeek) < 10 Then
'Do something
End If
我不确定你是否已经尝试过,但是你是否使用了Try Catch声明?这样你就可以看出错误来自哪里。
对好友进行调试;)
答案 2 :(得分:1)
由于您的字符串为空而导致错误“”。
在将字符串与数字进行比较之前,您应该对字符串进行某种错误检查。
你可以这样做:
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
答案 3 :(得分:0)
如果您的消息是异常消息,则转换失败。 如果将空字符串(“”“)传递给Convert.ToDouble,Double.Parse(在C#中),则会启动FormatException。
您可以使用Double.TryParse来避免这种情况。