我有一个JavaScript计算器,其中包含许多定义如下的函数(以ln
为例):
function ln(form) {
form.display.value = Math.log(form.display.value);
}
如果用户输入一个负数并单击该按钮以激活此功能,则返回NaN
,因为ln
未定义为负值。我想让它返回Error
。我试过这个,但它导致脚本停止工作:
var displayValue = form.display.value;
if (isNaN(displayValue)) displayValue = 'Error';
如果需要,这是显示的HTML标记:
<INPUT NAME="display" ID="disp" VALUE="0" SIZE="28" MAXLENGTH="25"/>
我怎样才能让它返回所需的输出?
答案 0 :(得分:0)
尝试这样的事情:
function ln(form) {
if(isNan(Math.log(form.display.value))){
form.display.value = 'Error';
} else {
form.display.value = Math.log(form.display.value);
}
}
答案 1 :(得分:0)
form.display.value
返回的值是一个字符串。这意味着如果无法将值解析为true
,则isNaN将始终返回Number
。您需要先将此值更改为Number
:
function ln(form) {
var displayValue = parseFloat(form.display.value);
if(isNaN(displayValue)){
form.display.setAttribute('value', 'Error');
} else {
form.display.setAttribute('value', Math.log(displayValue));
}
}