分数.

1 vb.net vb.net-2010

如何解决此错误..当用户输入整数并乘以它时,我的代码的这一部分没有问题

但是当用户输入像"1/2,-2/3 ETC"这样的小数(负数或正数)时会出现错误

错误指向:new1 = CDbl(txta1.Text)*CDbl(txtb2.Text)*CDbl(txtc3.Text)

错误消息:从字符串"1/2"到"Double"类型的转换无效.

查看plaincopy到clipboardprint?昏暗的new1,new2,new3,new4,new5,new6,add1,add2,minus1 As Double

    new1 = CDbl(txta1.Text) * CDbl(txtb2.Text) * CDbl(txtc3.Text)  
    new2 = CDbl(txta2.Text) * CDbl(txtb3.Text) * CDbl(txtc1.Text)  
    new3 = CDbl(txta3.Text) * CDbl(txtb1.Text) * CDbl(txtc2.Text)  

    new4 = CDbl(txtc1.Text) * CDbl(txtb2.Text) * CDbl(txta3.Text)  
    new5 = CDbl(txtc2.Text) * CDbl(txtb3.Text) * CDbl(txta1.Text)  
    new6 = CDbl(txtc3.Text) * CDbl(txtb1.Text) * CDbl(txta2.Text)  
Run Code Online (Sandbox Code Playgroud)

Chr*_*uer 5

请激活Option strict ON,这将帮助您防止新手错误,例如尝试使用像txta1.text这样的文本字段作为数字:http: //support.microsoft.com/kb/311329 您必须尝试解析一个值文本到这样的数字:

Dim number1 As Double

If Double.TryParse(txta1.Text, number1) Then
 // do something
Else
   Console.WriteLine("{0} is outside the range of a Double.", _
                   value)
// report error
End If
Run Code Online (Sandbox Code Playgroud)

否则,调试代码非常困难.对于分数:我很难用手可靠地解析分数.我会想到预建,就像数学表达式库一样.看看:https://ncalc.codeplex.com/