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类型;
所以,你这个写法本身就是错的;