すみません、教えてください。

class DoubleArrayFor {

public static void main(String[] args) {
double[] a=new double[5];

for(int i=0;i<a.length;i++)
a[i]=(i+1)*1.1;
for(int i=0;i<a.length;i++)
System.out.println("a["+i+"]="+a[i]);
}
}

上記で結果が下記になります。

a[0]=1.1
a[1]=2.2
a[2]=3.3000000000000003
a[3]=4.4
a[4]=5.5

このa[2]だけなぜこのようになるのでしょうか?
本には浮動小数点数には誤差が含まれるためこうなるとありますが、
それだったら他のところも同様になるのではありませんか?