日期:2014-05-20  浏览次数:20844 次

Java 类型转换问题,无法输出“数列和”,求大神帮忙
import java.util.*;
public class ing {

/**
 * @param args
 */
public static void main(String[] args) {

// TODO Auto-generated method stub
double x;
int n;
double sum=0;
ing m=new ing();
Scanner sa=new Scanner(System.in );
x= sa.nextDouble();
n=sa.nextInt();
if(String.valueOf(x)=="x"&&String.valueOf(n)=="n")
{
System.out.print("数列和");
}
else
{
sum=m.mypow(x, n)/m.fact(n);
System.out.printf("%.4f",sum);
}
}
 /**
 *计算n的阶乘
 */
public    double  fact(int n )
{
double sum=0;
if(n==0)
{
sum=1;
}
else
{
sum=n*fact(n-1);
}
return sum ;
}
 /**
 *计算x的n次幂
 */
  public double mypow(double x,int n)
  {
  double sum=0;
  sum=Math.pow(x, n)*Math.pow(-1, n-1);
  return sum;
  }

}

------解决方案--------------------
字符串比较用equals

if(String.valueOf(x).equals("x")&&String.valueOf(n).equals("n"))
{
System.out.print("数列和");
}
------解决方案--------------------
引用:
还是不可以唉。。。。。。

不知道你程序的目的是啥;
if (String.valueOf(x) == "x" && String.valueOf(n) == "n")
首先字符串的比较用equals;其次,你的x是double类型的,所以,你输入不了 x;或者说,x不能自动转化为double类型;
所以,你这个写法本身就是错的;