你是不是在第二个程序的这句出错啊?
System.out.println("please enter num2");
num2=Float.valueOf(br.readLine()).floatValu();

解决方案 »

  1.   

    你的读入流位置换了,calc=br.read();是读入一个符号
    num2=Float.valueOf(br.readLine()).floatValu();读入
    一个副点数,调换后可能会出现num2=Float.valueOf("-").floatValu();
    你说能不出错吗??
      

  2.   

    好像br.read()不读空格,这样使得num2=Float.valueof(br.readLine()).floatValue()
    试图把空格转换成浮点,所以出错?
    但我不知道怎么解决这个问题!
    我现在只能在br.read()后面加上一句br.readline()把空格读出来!!
    谁来告诉我因该怎么做!
      

  3.   

    因为你没有说是哪里出错,我估计是那句话出错(见我上贴)。
    一般不要用read,这个方法只读一个字符,包括这个字符是回车,处理不好容易出错。
    读一个字符也用readln:
    calc=Integer.parseInt((br.readln());在你程序里判断是否合法。
      

  4.   

    如果你的代码是这样写的话:
    num2=Float.valueOf(br.readLine()).floatValu();
    肯定出错,不知道你看出来没有???这是你粘贴上来的失误还是你代码本身就这样写???有个很明显的拼写错误!!!肯定是马虎所致。
    要不是这个错,把你的出错代码也贴上来看看!!!
      

  5.   

    after you typed "+", you need also press Enter. System.out.println("please enter calc");
    calc=br.read();
    br.skip(2); //skip Enter on windows platformuse readLine() is ok.