我编了一个类,给它定义构造函数时候,如下
class doing
{
private float a[];
private float b[];
private int n;
private float sum;
doing(int n)
{
a=new float[n];
b=new float[n];
this.n=n;
sum=0;

a[0]=1.0;
a[1]=2.0;
if(n>=2)
{

for (int i=2;i<n;i++)
  {
  a[i]=a[i-1]+a[i-2];
  }
b[0]=2.0;
b[1]=3.0;
for (int i=2;i<n;i++)
  {
  b[i]=b[i-1]+b[i-2];
  }
}
}
编译时候,编译器报错,地方在a[0]=1.0   a[1]=2.0     b[0]=2.0       b[1]=3.0   这四个地方,错误提示是可能损失精度。但是我把他们后面的.0去掉后就能编译通过,但是结果却得不到正确的精度,损失了很打的精度。这是为什么???我前面定义的是float型的啊????各路朋友解答一下,谢谢!!我会及时给分的。