function cal()
  {
var p1=prompt("请输入第一个数","");
var p2=prompt("请输入第二个数","");
var p3=prompt("请输入运算符","");
switch(p3)
{
case "+":
alert(p1+p3+p2+"="+(parseInt(p1)+parseInt(p2)));break;
case "-":
alert(p1+p3+p2+"="+(p1-p2));break;
case "*":
alert(p1+p3+p2+"="+p1*p2);break;
case "/":
alert(p1+p3+p2+"="+p1/p2);break;
default:
alert("输入有误!");break;
}
  }把(parseInt(p1)+parseInt(p2))换成(p1+p2)为什么就没办法显示正确结果啊?

解决方案 »

  1.   

    alert('1'+'2')
    输入的还是字符串
      

  2.   

    输入1+1
    alert(p1+p3+p2+"="+(parseInt(p1)+parseInt(p2)));出来的结果是2
    alert(p1+p3+p2+"="+(p1+p2));结果是11
    为什么?
      

  3.   

    因为prompt获得的值就是字符串。
      

  4.   

    alert(p1+p3+p2+"="+(p1-p2));break;alert(p1+p3+p2+"="+p1*p2);break;alert(p1+p3+p2+"="+p1/p2);break;这三句我没用parseInt转换为什么结果没错呢
      

  5.   

    + 号在js中:
    1、算术运算符 +
    2、字符串连接符 你的p1和p2是字符串,优先用2. 因此 parseInt 在这里尽显到了作用.