昨天一小师弟问了我一程序输出问题,我也弄不明白,想问问大家
程序很简单,代码如下:
class CCircle
{
private double pi=3.14;
private double radius;
public CCircle(double r)
{
radius=r;
}
public void show()
{
System.out.println("area="+pi*radius*radius);
}
}public class app8_7
{
public static void main(String args[])
{
CCircle cir1=new CCircle(1.0);
cir1.show();
CCircle cir2=new CCircle(3.0);
cir2.show();
}
}IDE用的是Jcreator,输出如下:
area=3.14
area=28.259999999999998
Press any key to continue...
现在的问题是:为什么输入radius=3.0的时候结果中有效数字这么长,而其他输入结果都是两位有效数字?
程序很简单,代码如下:
class CCircle
{
private double pi=3.14;
private double radius;
public CCircle(double r)
{
radius=r;
}
public void show()
{
System.out.println("area="+pi*radius*radius);
}
}public class app8_7
{
public static void main(String args[])
{
CCircle cir1=new CCircle(1.0);
cir1.show();
CCircle cir2=new CCircle(3.0);
cir2.show();
}
}IDE用的是Jcreator,输出如下:
area=3.14
area=28.259999999999998
Press any key to continue...
现在的问题是:为什么输入radius=3.0的时候结果中有效数字这么长,而其他输入结果都是两位有效数字?
这里说的很清楚,计算机处理浮点数的时候有时会出现这种问题
double s=0;
for (int i=0; i<26; i++)
s += 0.1;
System.out.println(s);