
敲了一个计算机,但是输出的结果一直是 NaN,不知道哪里出错,想请教一下
<input type="text" Onclick="changeKG(false)" id="text1"> <input id="fuhao" type="text" value="+"> <input type="text" Onclick="changeKG(true)" id="text2"> <input type="text" value="="> <input type="text" id="resule" value=" "> <table cellspacing="0" cellpadding="0"> <tr> <td colspan="2"><input class="btn" type="button"id="" value="C" > </td> </tr> <tr> <td><input class="btn" type="button" value="1" Onclick="addnum( '1')"></td> <td><input class="btn" type="button" value="2" Onclick="addnum( '2')"></td> <td><input class="btn" type="button" value="3" Onclick="addnum( '3')"></td> <td><input class="btn" Onclick="change('+')" type="button" value="+" ></td> </tr> <tr> <td><input class="btn" type="button" value="4" Onclick="addnum( '4')"></td> <td><input class="btn" type="button" value="5" Onclick="addnum( '5')"></td> <td><input class="btn" type="button" value="6" Onclick="addnum( '6')"></td> <td><input class="btn" Onclick="change('-')" type="button" value="-" ></td> </tr> <tr> <td><input class="btn" type="button" value="7" Onclick="addnum( '7')"></td> <td><input class="btn" type="button" value="8" Onclick="addnum( '8')"></td> <td><input class="btn" type="button" value="9" Onclick="addnum( '9')"></td> <td><input class="btn" Onclick="change( '*' )" type="button" value="*" ></td> </tr> <tr> <td><input class="btn" type="button" value="." Onclick="addnum( '.')"></td> <td><input class="btn" type="button" value="0" Onclick="addnum( '0')"></td> <td><input class="btn" type="button" value="=" Onclick="compute( )"></td> <td><input class="btn" Onclick="change( '/')" type="button" value="/" ></td> </tr> </table> var kaiguan = false function changeKG (b){ kaiguan = b } function change(a){ fuhao.value = a } function addnum(num){ if (kaiguan){ text2.value += num }else{ text1.value += num } } function compute(){ switch (fuhao.value) { case '+': resule.value = (text1 -0)+(text2 -0) break; case '-': resule.value = (text1 -0)-(text2 -0) break; case '*': resule.value = (text1-0)*(text2 -0) break; case '/': resule.value = (text1 -0)/(text2 -0) break; } } 1 donotquestion 2020-07-28 17:59:00 +08:00 nan 表示除了 0 |
2 gotonull 2020-07-28 18:09:22 +08:00 楼主这开头把我吓到了,敲了个计算机,一看代码原来是计算器。。。 |
3 zhw2590582 2020-07-28 18:14:17 +08:00 我也想用 html 开发一个计算机 |
4 wysnylc 2020-07-28 18:15:57 +08:00 NaN 我就知道是 js |
5 kop1989 2020-07-28 18:19:04 +08:00 突然想起 spaceX 火箭里的控制台用 js 写的。氧气含量:NaN,燃料剩余:undefined |
6 chfight 2020-07-28 18:19:04 +08:00 猜测是类型问题,建议把 Onclick="addnum( '1')"替换为 Onclick="addnum(1)"试试 |
7 chengxy 2020-07-28 18:26:37 +08:00 为什么 value 能直接用 id 赋值了,新特性吗? |
8 qiayue PRO 你的 text1 和 text2 是什么你并没有定义, 可以用 document.getElementById('text1') 得到这个输入框,再得到值 document.getElementById('text1').value 另外 result 写错了吧,写成 resule 了。 |
9 qiayue PRO 如果你想最小改动即可有效,可以只修改 compute 函数,把所有的 text1 改成 text1.value,把所有的 text2 改成 text2.value |
10 jzmws 2020-07-28 18:46:47 +08:00 第一感觉除数是 0 |
11 fool079 2020-07-28 19:27:58 +08:00 NaN 表示 Not a Number LZ 这种情况应该是未定义的变量参与了计算,实际是 undefined 被转成了数字运算 |
12 GW8I970f36di11t6 2020-07-28 21:11:47 +08:00 function compute(){ switch (fuhao.value) { case '+': //这里的 text1 和 text2 应该加.value resule.value = (text1.value -0)+(text2.value -0) break; case '-': resule.value = (text1 -0)-(text2 -0) break; case '*': resule.value = (text1-0)*(text2 -0) break; case '/': resule.value = (text1 -0)/(text2 -0) break; } } |
13 bbtjym 2020-07-28 21:14:31 +08:00 除 0 是 Infinity 吧 |