# CComplexNumber – A class for dealing with complex numbers

``Option Explicit'------------------------------------------' A class for dealing with complex numbers'------------------------------------------' The main propertiesPublic Real As DoublePublic Imaginary As Double' Initialize this complex number' (returns Me)Function Init(Real As Double, Imaginary As Double) As CComplexNumber    Me.Real = Real    Me.Imaginary = Imaginary    Set Init = MeEnd Function' Returns another complex number with given' real and imaginary partsFunction Complex(Real As Double, Imaginary As Double) As CComplexNumber    Set Complex = New CComplexNumber    Complex.Real = Real    Complex.Imaginary = ImaginaryEnd Function' Add a complex number to the current one' (returns Me)Function Add(other As CComplexNumber) As CComplexNumber    Real = Real + other.Real    Imaginary = Imaginary + other.Imaginary    Set Add = MeEnd Function' Add a complex number to the current one' (returns the result CComplexNumber)Function Add2(Real As Double, Imaginary As Double) As CComplexNumber    Set Add2 = New CComplexNumber    Add2.Real = Me.Real + Real    Add2.Imaginary = Me.Imaginary + ImaginaryEnd Function' Subtract a complex number from the current one' (returns the result CComplexNumber)Function Subtract2(Real As Double, Imaginary As Double) As CComplexNumber    Set Subtract2 = New CComplexNumber    Subtract2.Real = Me.Real - Real    Subtract2.Imaginary = Me.Imaginary - ImaginaryEnd Function' Multiple a complex number by the current one' (returns the result CComplexNumber)Function Multiply2(Real As Double, Imaginary As Double) As CComplexNumber    Set Multiply2 = New CComplexNumber    Multiply2.Real = (Me.Real * Real - Me.Imaginary * Imaginary)    Multiply2.Imaginary = Me.Real * Imaginary + Me.Imaginary * RealEnd Function' Divide the current number by another complex number' (returns the result CComplexNumber)Function Divide2(Real As Double, Imaginary As Double) As CComplexNumber    Set Divide2 = New CComplexNumber    Dim sum As Double    ' create the sum only once    sum = Real * Real + Imaginary * Imaginary    ' evaluate the real and imaginary parts    Divide2.Real = (Me.Real * Real + Me.Imaginary * Imaginary) / sum    Divide2.Imaginary = (Me.Imaginary * Real - Me.Real * Imaginary) / sumEnd Function' Return the textual description of a complex numberFunction Text() As String    If Imaginary = 0 Then        Text = LTrim\$(Real)    ElseIf Real = 0 Then        Text = LTrim\$(Imaginary) & "i"    ElseIf Imaginary > 0 Then        Text = LTrim\$(Real) & "+" & LTrim\$(Imaginary) & "i"    Else        Text = LTrim\$(Real) & LTrim\$(Imaginary) & "i"    End IfEnd Function``

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.