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, third, fourth) {
var num1;
var num2;
num1 = ImaginaryNumbers.transform(document.getElementById("firstComplexNumber").value);
num2 = ImaginaryNumbers.transform(document.getElementById("secondComplexNumber").value);
num3 = ImaginaryNumbers.transform(document.getElementById("thirdComplexNumber").value);
num4 = ImaginaryNumbers.transform(document.getElementById("fourthComplexNumber").value);
var realNum = num1.realNum + num2.realNum + num3.realNum + num4.realNum;
var imaginary = num1.imaginary + num2.imaginary + num3.imaginary + num4.imaginary;
return document.getElementById("result8").innerHTML = display_complex(realNum, imaginary);
}
我尝试让用户输入,但我不断得到NaN
+NaNi
作为以下结果。我不确定问题是什么。任何帮助,将不胜感激。
解决方案
您不是从 Input 获取值作为数字而是作为字符串,因此使用parseInt获取输入的整数。
当前为:
num1 = ImaginaryNumbers.transform(document.getElementById("firstComplexNumber").value);
num2 = ImaginaryNumbers.transform(document.getElementById("secondComplexNumber").value);
num3 = ImaginaryNumbers.transform(document.getElementById("thirdComplexNumber").value);
num4 = ImaginaryNumbers.transform(document.getElementById("fourthComplexNumber").value);
改成:
num1 = ImaginaryNumbers.transform(parseInt(document.getElementById("firstComplexNumber").value));
num2 = ImaginaryNumbers.transform(parseInt(document.getElementById("secondComplexNumber").value));
num3 = ImaginaryNumbers.transform(parseInt(document.getElementById("thirdComplexNumber").value));
num4 = ImaginaryNumbers.transform(parseInt(document.getElementById("fourthComplexNumber").value));
推荐阅读
- android - 在构建时将变量传递到 Android 中的 externalNativeBuild
- drag-and-drop - ASP.NET/VB Telerik RadTreeList 拖放值赋值
- php - Laravel,如何从自定义表的 jwt 令牌中获取登录用户
- c - 在 C 中交换两个结构(动态内存分配)
- c - 访问超出最初声明的指针的内存
- python - Python - TypeError: __init__() 接受 3 个位置参数,但给出了 4 个
- git - 为什么 git bisect 为我提供了一个相当古老的提交?
- python - 为什么 subprocess 在 shell 脚本中使用时返回双“\”(例如“1\\n2”)?
- reactjs - 反应路由器在实时站点上的某些页面上不起作用
- java - vlcj Mediastatistic do not show stats