Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
类型为';的未处理异常;System.FormatException';发生在mscorlib.dll VB.net中_Vb.net - Fatal编程技术网

类型为';的未处理异常;System.FormatException';发生在mscorlib.dll VB.net中

类型为';的未处理异常;System.FormatException';发生在mscorlib.dll VB.net中,vb.net,Vb.net,我正在为我的学校项目写一些计算应用程序我使用的代码是 Private Sub C1A_Leave(sender As Object, e As EventArgs) Handles C1A.Leave If C1A.Text = "" Then Else C2A.Text = Double.Parse(C1A.Text) * Double.Parse(C1ER.Text) If SellMove.Checked =

我正在为我的学校项目写一些计算应用程序我使用的代码是

Private Sub C1A_Leave(sender As Object, e As EventArgs) Handles C1A.Leave
        If C1A.Text = "" Then
        Else
            C2A.Text = Double.Parse(C1A.Text) * Double.Parse(C1ER.Text)
            If SellMove.Checked = True Then
                C1NC.Text = Double.Parse(C1OC.Text) - Double.Parse(C1A.Text)
                C2NC.Text = Double.Parse(C2OC.Text) + Double.Parse(C2A.Text)
            ElseIf BuyMove.Checked = True Then
                C1NC.Text = Double.Parse(C1OC.Text) + Double.Parse(C1A.Text)
                C2NC.Text = Double.Parse(C2OC.Text) - Double.Parse(C2A.Text)
            End If
            C2A.Text = CDec(C2A.Text).ToString("N")
            C1A.Text = CDec(C1A.Text).ToString("N")
            C1NC.Text = CDec(C1NC.Text).ToString("N")
            C2NC.Text = CDec(C2NC.Text).ToString("N")
        End If
    End Sub
但我得到的错误是,在mscorlib.dll VB.net中发生了类型为“System.FormatException”的未处理异常

问题是当C1OC和c2c text=0时,它可以工作,但如果不是0,则会显示错误


请提供任何帮助

请始终对问题提供完整、清晰的解释。这将确切地包括引发异常的行、实际错误消息(不仅仅是异常的类型)以及当时正在使用的数据。问题可能是您正在向一个或多个
Double.Parse
调用传递一个不表示数字的
字符串。显而易见的解决方案是不要这样做,即不要调用
Double.Parse
,除非您知道文本确实代表一个数字。这意味着首先验证,或者使用
Double.TryParse
一起验证和转换,将
Double
分配给控件的
文本
,然后将得到的
字符串
返回,并将其转换为
十进制
,然后将其格式化为
字符串
,并将其分配回同一控件的
文本
,这一切都很糟糕。您应该首先将
选项严格设置为
,然后修复所有键入问题。然后,如果要在该控件中使用格式化的
十进制
,请首先将原始
字符串
转换为
十进制
,然后格式化乘法结果,并将结果一步放入控件中。