二次复合根求解器

时间:2014-02-18 12:15:33

标签: vb.net

似乎无法使控制台正确打印出复杂的根。

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 个答案:

答案 0 :(得分:2)

您正尝试将字符串值分配给long值,然后打印long值。我真的不知道你要做什么。如果您想打印出计算值,请尝试:

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。这样,编译器就会强迫您自己使用正确的类型转换。这避免了许多错误。

答案 1 :(得分:0)

你想用&amp; &做什么?

  

....(2 * quadCoA)&amp; “+”&amp; (quad4ac * -1)......

问题是&是VB.NET中的字符串连接,当然不能分配给Long

您希望控制台在此行打印什么?

Console.WriteLine(quadrComplex)

你的答案将介于这两个问题之间。