2014-02-18 65 views
0

似乎無法使控制檯正確打印出複雜的根。二次方複數根求解器

If quad4ac < 0 Then 

     Dim quad4acComplex As Long = quad4ac * -1 
     Dim quadiComplex As Long = -1 
     Dim quadrComplex As Long 

     Console.WriteLine(vbNewLine & "Your Roots Are Complexed!" & vbNewLine) 

     quadrComplex = (-quadCoB/(2 * quadCoA) & "+" & (quad4ac * -1)^0.5/(2 * quadCoA)) 
     Console.WriteLine(quadrComplex) 

似乎導致控制檯崩潰。

回答

2

您正嘗試將字符串值分配給一個長整型值,然後輸出長整型值。我真的不知道你在做什麼。如果你想打印出計算值的嘗試:

quadrComplex = CType((-quadCoB/(2 * quadCoA) + (quad4ac * -1)^0.5/(2 * quadCoA)), Long) 
Console.Writeline(quadrComplex.Tostring) 

如果你要打印出表達嘗試

Dim quadrComplex as String 
quadrComplex = "(-" & quadCoB.Tostring & "/(2 * " & quadCoA.ToString & ") + (" & quad4ac.ToString & " * -1)^0.5/(2 * " & quadCoA.ToString & "))" 
Console.Writeline(quadrComplex) 

你應該考慮在你的程序,使Option Strict。這樣,編譯器就會迫使你自己使用正確的類型轉換。這避免了很多很多錯誤。

0

你想用&符號&在這裏做什麼?

....(2 * quadCoA)& 「+」 &(quad4ac * -1)...

問題是,&是在VB字符串連接。 NET,這當然不能被分配到Long

您希望控制檯在此行打印什麼?

Console.WriteLine(quadrComplex) 

對於您的答案將介於這兩個問題之間。