Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.Net从字符串到双精度的转换_Vb.net_String_Textbox_Type Conversion - Fatal编程技术网

VB.Net从字符串到双精度的转换

VB.Net从字符串到双精度的转换,vb.net,string,textbox,type-conversion,Vb.net,String,Textbox,Type Conversion,我的程序中有一个错误,当文本框中没有输入时,如果用户按下检查(计算)按钮,程序将显示此错误:“从字符串“”转换为类型“Double”无效。”我想解决此问题,但我不确定如何进行转换。我想可能是CType,但我听到了解析的说法。我该怎么办?文本框称为mskTxtInput,按钮对象称为btnCheck,负责所有计算和处理 更新:这是我的代码,除了解析方法,所以希望这有点帮助 私有子BTN检查\单击(ByVal发送者作为System.Object,ByVal e作为System.EventArgs)处

我的程序中有一个错误,当文本框中没有输入时,如果用户按下检查(计算)按钮,程序将显示此错误:“从字符串“”转换为类型“Double”无效。”我想解决此问题,但我不确定如何进行转换。我想可能是CType,但我听到了解析的说法。我该怎么办?文本框称为mskTxtInput,按钮对象称为btnCheck,负责所有计算和处理

更新:这是我的代码,除了解析方法,所以希望这有点帮助

私有子BTN检查\单击(ByVal发送者作为System.Object,ByVal e作为System.EventArgs)处理BTN检查。单击 pic1.可见=假“隐藏图片” pic1.Image=My.Resources.A pic2.Image=My.Resources.F

    Dim value As Double
    If Double.TryParse(mskTxtInput.Text, value) = Then
        MsgBox("parsing success") ' parsing worked, so use the value in here 
    Else
        MsgBox("parsing failed") ' parsing failed, so alert the user to that fact 
    End If


    If radAdd.Checked = True Then
        totalNum = num1 + num2


    End If

    If radSub.Checked = True Then
        totalNum = num1 - num2

    End If

    If radMulti.Checked = True Then
        totalNum = num1 * num2



    End If

    If mskTxtInput.Text = totalNum Then
        lblAns.Text = ("Correct!")
        lblAns2.Text = ("Answer is " & totalNum)
        pic1.Visible = True
        wins = wins + 1
        nScore = wins



    Else
        lblAns.Text = ("Incorrect")
        lblAns2.Text = ("Answer should be " & totalNum)
        pic2.Visible = True

    End If

    attempts = attempts + 1
    If attempts = 5 Then
        MessageBox.Show("Game Finished! ", "End Of Game", _
                        MessageBoxButtons.OK, _
                        MessageBoxIcon.Exclamation)
        lblAns.Text = ("You scored " & wins & " Out of 5")
        btnSpin.Enabled = False
        pic1.Visible = False
        pic2.Visible = False
        lblAns2.Text = ""
        lblAns2.Text = "Play again?"
        btnCheck.Enabled = False
        btnNew.Enabled = True
        attempts = 0
        wins = 0
    End If


    mskTxtInput.Clear()
    mskTxtInput.Focus()


End Sub
作为整数的dim-iVar 作为字符串的dim sStr

sstr=“”

ivar=val(sstr)

将ivar设置为整数 作为字符串的dim sStr

sstr=“”

ivar=val(sstr)

尝试使用

差不多

Dim s As String
Dim result As Double
Dim returnValue As Boolean

returnValue = Double.TryParse(s, result)
尝试使用而不是

差不多

Dim s As String
Dim result As Double
Dim returnValue As Boolean

returnValue = Double.TryParse(s, result)

使用静态方法。如果返回true,则解析成功,您可以继续操作。如果返回false,则解析未成功,您应该显示错误消息(如果需要,请使用
MessageBox
)并中止操作。

使用静态方法。如果返回true,则解析成功,您可以继续操作。如果返回false,则解析未成功,您应该显示错误消息(如果需要,请使用
MessageBox
)并中止操作。

使用
TryParse
方法进行解析,以避免在解析失败时出现异常:

Dim value As Double
If Double.TryParse(mskTxtInput.Text, value) Then
  ' parsing worked, so use the value in here
Else
  ' parsing failed, so alert the user to that fact
End If

使用
TryParse
方法进行解析,以避免在解析失败时出现异常:

Dim value As Double
If Double.TryParse(mskTxtInput.Text, value) Then
  ' parsing worked, so use the value in here
Else
  ' parsing failed, so alert the user to that fact
End If

请在出现此问题的地方共享一些代码。这与您的问题没有直接关系,但看起来您没有使用
选项Strict
。我建议您启用该选项:编译器随后会生成有关危险代码的警告,这将从长远来看节省您的时间。请在出现此问题的地方共享一些代码。这与您的问题没有直接关系,但看起来您没有使用
选项Strict
。我建议你打开它:然后编译器会生成关于危险代码的警告,从长远来看这会节省你的时间。嘿!我使用了你的代码,但在messagebox中添加了“解析通过”和“解析失败”的选项,并不断收到“解析失败”的消息。我可以清楚地显示代码,希望它能有所帮助@William Mc:您在发布的代码中添加了一个
=
操作符,然后在
之前添加了一个
,因此它不会运行。去掉那个,它就工作了。我已经验证了如果解析成功,代码会显示第一个消息框。我去掉了=运算符,但它仍然不起作用:(VS总是以黄色突出显示这一行:如果mskTxtInput.Text=totalNum,那么这说明解析起作用了:如果mskTxtInput.Text=”“,那么Dim值为Double Double.TryParse(mskTxtInput.Text,value)MsgBox(“解析已完成”)'解析已完成,因此请使用此处Else中的值MsgBox(“解析失败”)'解析失败,因此请提醒用户该事实If@WilliamMc:您只是检查输入是否为空。由于您没有对
TryParse
方法的返回值执行任何操作,因此您忽略了解析是否有效。即使解析失败,消息框也始终显示。嘿!我使用了您的代码,但很生气e messagebox显示“解析通过”和“解析失败”的消息,并不断收到“解析失败”我可以很明显地显示代码,希望它能有所帮助!@William Mc:您在发布的代码中添加了一个
=
操作符,因此它不会运行。删除该操作符后,它就会工作。我已经验证了如果解析成功,代码会显示第一个消息框。我删除了=操作符,但它仍然不工作:(VS始终以黄色突出显示此行:如果mskTxtInput.Text=totalNum,则说明解析已完成:如果mskTxtInput.Text=”“,则Dim值为Double Double.TryParse(mskTxtInput.Text,value)MsgBox(“解析已完成”)”解析已完成,因此请使用此处Else MsgBox中的值(“解析失败”)“解析失败,因此请提醒用户该事实结束If@WilliamMc:您只是检查输入是否为空。由于您没有对
TryParse
方法的返回值执行任何操作,因此忽略解析是否有效。即使解析失败,消息框也始终显示。