Javascript 我需要帮助,找出在计算复数时如何修正输出

Javascript 我需要帮助,找出在计算复数时如何修正输出,javascript,complex-numbers,Javascript,Complex Numbers,JavaScript代码: function ImaginaryNumbers(realNum, imaginary) { this.realNum = 0; this.imaginary = 0; this.realNum = (typeof realNum === 'undefined') ? this.realNum : parseFloat(realNum); this.imaginary = (typeof imaginary === 'undefine

JavaScript代码:

function ImaginaryNumbers(realNum, imaginary) {
    this.realNum = 0;
    this.imaginary = 0;
    this.realNum = (typeof realNum === 'undefined') ? this.realNum : parseFloat(realNum);
    this.imaginary = (typeof imaginary === 'undefined') ? this.imaginary : parseFloat(imaginary);  
}

ImaginaryNumbers.transform = function(num) {
    var imaginaryNumbers;
    imaginaryNumbers = (num instanceof ImaginaryNumbers) ? num : imaginaryNumbers;
    imaginaryNumbers = (typeof num === 'number') ? new ImaginaryNumbers(num, 0) : num;
    return imaginaryNumbers;
};

function display_complex(re, im) {
    if(im === '0') return '' + re;
    if(re === 0) return '' + im + 'i';
    if(im < 0) return '' + re + im + 'i';
    return '' + re + '+' + im + 'i';
}

function addingComplexNumbers(first, second) {
    var num1;
    var num2;
    var first = parseInt(document.getElementById("firstComplexNumber").value) + parseInt(document.getElementById("secondComplexNumber").value);
    var second = parseInt(document.getElementById("thirdComplexNumber").value) + parseInt(document.getElementById("fourthComplexNumber").value);
    num1 = ImaginaryNumbers.transform(first);
    num2 = ImaginaryNumbers.transform(second);    
    var realNum = num1.realNum + num2.realNum;
    var imaginary = num1.imaginary + num2.imaginary;
    return document.getElementById("result8").innerHTML = display_complex(realNum, imaginary);
函数想象数(实数,想象数){
this.realNum=0;
这个值等于0;
this.realNum=(typeof realNum=='undefined')?this.realNum:parseFloat(realNum);
this.virginal=(typeof virginal=='undefined')?this.virginal:parseFloat(virginal);
}
ImaginaryNumbers.transform=函数(num){
var想象数;
ImageAryNumbers=(ImageAryNumbers的实例数)?num:ImageAryNumbers;
ImageAryNumbers=(typeof num=='number')?新ImageAryNumbers(num,0):num;
返回图像数字;
};
功能显示\u复合体(re、im){
如果(im==“0”)返回“”+re;
如果(re==0)返回“”+im+'i';
如果(im<0)返回“”+re+im+i';
返回'+re+'+'+im+'i';
}
函数AddingComplexNumber(第一、第二){
var num1;
var num2;
var first=parseInt(document.getElementById(“firstComplexNumber”).value)+parseInt(document.getElementById(“secondComplexNumber”).value);
var second=parseInt(document.getElementById(“thirdComplexNumber”).value)+parseInt(document.getElementById(“fourthComplexNumber”).value);
num1=ImaginaryNumbers.transform(第一);
num2=图像数字。转换(秒);
var realNum=num1.realNum+num2.realNum;
var virtual=num1.virtual+num2.virtual;
return document.getElementById(“result8”).innerHTML=display_complex(realNum,virtual);
/*********************************************************/

HTML Code:
<form>
    <h1>Computing Imaginary Numbers</h1>
    <fieldset>    
        <p>Input the first real number : <input type="text" id="firstComplexNumber" /></p>
        <p>Input the first imaginary complex number: <input type="text" id="secondComplexNumber" /></p>
    </fieldset>
    <br>
    <fieldset>    
        <p>Input the second real number: <input type="text" id="thirdComplexNumber" /></p>
        <p>Input the second imaginary complex number : <input type="text" id="fourthComplexNumber" /></p>
    </fieldset>
    <input type="button" onclick="addingComplexNumbers()" value="Add">
    <input type="button" onclick="subtractingComplexNumbers()" value="Subtract">
    <input type="button" onclick="multiplyingComplexNumbers()" value="Multiply">
    <input type="button" onclick="dividingComplexNumbers()" value="Divide">

    <p>Result: <br>
        <span id="result8"></span>
    </p>
</form>
HTML代码:
计算虚数
输入第一个实数:

输入第一个虚复数:


输入第二个实数:

输入第二个虚复数:

结果:


我用(2,-7)和(4,3)表示数字,但程序给出了2+0i。这不是答案。正确的答案是6-4i。我不确定应该在哪里修复计算。任何帮助都会很好!

您错误地初始化了虚数,请参阅更改
添加复杂数字
函数

有几种方法可以解决这个问题,但我只是将这些对传递到
ImaginaryNumbers
构造函数中

函数想象数(实数,想象数){
this.realNum=0;
这个值等于0;
this.realNum=(typeof realNum=='undefined')?this.realNum:parseFloat(realNum);
this.virginal=(typeof virginal=='undefined')?this.virginal:parseFloat(virginal);
}
ImaginaryNumbers.transform=函数(num){
var想象数;
ImageAryNumbers=(ImageAryNumbers的实例数)?num:ImageAryNumbers;
ImageAryNumbers=(typeof num=='number')?新ImageAryNumbers(num,0):num;
返回图像数字;
};
功能显示\u复合体(re、im){
如果(im==“0”)返回“”+re;
如果(re==0)返回“”+im+'i';
如果(im<0)返回“”+re+im+i';
返回'+re+'+'+im+'i';
}
函数addingComplexNumbers(){
var first=新的图像编号(parseInt(document.getElementById(“firstComplexNumber”).value)| | 0,parseInt(document.getElementById(“secondComplexNumber”).value)| | 0);
var second=新的图像编号(parseInt(document.getElementById(“thirdComplexNumber”).value)| 0,parseInt(document.getElementById(“fourthComplexNumber”).value)| 0);
var realNum=first.realNum+second.realNum;
var virtual=第一个虚拟+第二个虚拟;
var结果=显示复杂度(实数,虚值);
document.getElementById(“result8”).innerHTML=result;
返回结果;
}

计算虚数
输入第一个实数:

输入第一个虚复数:


输入第二个实数:

输入第二个虚复数:

结果:


输入第三个复数
这不太清楚-您可以将输入重命名为“输入第一个复数的实部”、“输入第一个复数的虚部”,etcOkay这是有道理的。感谢您的帮助。您需要进行一些错误检查,以使其更加健壮,但希望您的方向正确。