当前位置: 技术问答>java相关
浮点数怎么不能正确的输出呢????
来源: 互联网 发布时间:2015-09-16
本文导语: class YiWai {public static void main(String[] args){ double rs; final int LEN=20; byte[] temp1=new byte[LEN]; try { System.out.print("input x : "); System.in.read(temp1,0,LEN); } catch (Exception e){} String xtemp=new String(temp1); int x=new Integer(xtemp.trim()).i...
class YiWai
{public static void main(String[] args){
double rs;
final int LEN=20;
byte[] temp1=new byte[LEN];
try
{
System.out.print("input x : ");
System.in.read(temp1,0,LEN);
}
catch (Exception e){}
String xtemp=new String(temp1);
int x=new Integer(xtemp.trim()).intValue();
//the first number!
byte[] temp2=new byte[LEN];
try
{
System.out.print("input y : ");
System.in.read(temp2,0,LEN);
}
catch (Exception e){}
String ytemp=new String(temp2);
int y=new Integer(ytemp.trim()).intValue();
if (x==y)
{System.out.print("error");
}
else{
rs=(x+y)/(x-y);
System.out.print("rs is "+rs);
}
}
};
输出是有小数的
但是小数位置总是零!
{public static void main(String[] args){
double rs;
final int LEN=20;
byte[] temp1=new byte[LEN];
try
{
System.out.print("input x : ");
System.in.read(temp1,0,LEN);
}
catch (Exception e){}
String xtemp=new String(temp1);
int x=new Integer(xtemp.trim()).intValue();
//the first number!
byte[] temp2=new byte[LEN];
try
{
System.out.print("input y : ");
System.in.read(temp2,0,LEN);
}
catch (Exception e){}
String ytemp=new String(temp2);
int y=new Integer(ytemp.trim()).intValue();
if (x==y)
{System.out.print("error");
}
else{
rs=(x+y)/(x-y);
System.out.print("rs is "+rs);
}
}
};
输出是有小数的
但是小数位置总是零!
|
在这句
rs=(x+y)/(x-y);
里,由于x,y都是整数,运算的结果必然是整数,为什么?C语言里就是这么教育大家的:整数和整数,结果还是整数。赋值给rs当然小数为0了:)
如果想要运算正确,可以在那句运算时,将x和y转为double。
rs=(x+y)/(x-y);
里,由于x,y都是整数,运算的结果必然是整数,为什么?C语言里就是这么教育大家的:整数和整数,结果还是整数。赋值给rs当然小数为0了:)
如果想要运算正确,可以在那句运算时,将x和y转为double。
|
rs=((double)x+y)/(x-y);