Vb.net 在文本框中使用math.roundoff函数时出错

Vb.net 在文本框中使用math.roundoff函数时出错,vb.net,textbox,double,rounding,Vb.net,Textbox,Double,Rounding,我想对两个文本框中的值进行四舍五入,如果选中了四舍五入menustrip,则表示textbox1和textbox2,如果未选中,则保持原样textbox1和textbox2携带某些计算的结果,这些结果将始终是数字。我使用了以下代码,但调试时出错,即“从字符串”转换为类型“Double”无效。 注意:ReadOnly文本框的属性设置为True Private Sub mnuRoundOff_CheckedChanged(ByVal sender As Object, ByVal e As Syst

我想对两个文本框中的值进行四舍五入,如果选中了四舍五入
menustrip
,则表示
textbox1
textbox2
,如果未选中,则保持原样
textbox1
textbox2
携带某些计算的结果,这些结果将始终是数字。我使用了以下代码,但调试时出错,即“从字符串”转换为类型“Double”无效。

注意:
ReadOnly
文本框的属性设置为
True

Private Sub mnuRoundOff_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuRoundOff.CheckedChanged
        Dim r, s As String
        Dim t, u As Decimal
        r = TextBox2.Text
        s = TextBox3.Text
        t = r * 1
        u = s * 1
        If mnuRoundOff.Checked = True Then
            TextBox2.Text = Math.Round(t, 0, MidpointRounding.AwayFromZero)
            TextBox3.Text = Math.Round(u, 0, MidpointRounding.AwayFromZero)
        Else
            TextBox2.Text = r
            TextBox3.Text = s
        End If
    End Sub

文本框包含文本,Math需要一个数字。因此,error和s将始终为数字。这就是为什么我把它们的每个值乘以1,使之成为一个数字。这不对吗?
Dim r,s As String
表示r和s始终是字符串/文本
u=r*1
是giberish-打开选项Strict您是否确实阅读了错误消息?它明确地告诉我们,空字符串不能转换为
Double
。您说
文本框总是包含一个数字,但显然不是这样。错误消息表明,
文本框
有时是空的。