本帖最后由 zhq195w 于 2012-12-02 21:33:23 编辑

解决方案 »

  1.   

    常量15.6被认为是double型的了,如果要想让它是float型的有两种方法
    1.(float)15.6
    2. 15.6f把double型的值赋给float型的变量,所以就报错了
      

  2.   

    import java.lang.*;
    class CRectangle{
        float width;
        float height;
    }
     
    public class hw8_3 {
        public static void main(String args[]){
            CRectangle rect1 = new CRectangle();
             
            rect1.width = 15.6;
            rect1.height = 10.8;
            System.out.println("area="+(rect1.width*rect1.height));
        System.out.println("float的最大值:"+java.lang.Float.MAX_VALUE);
        }
    }
    报错了:精度损失,怎么回事?
      

  3.   

    double 是双精度型的,float是单精度的,double 取得的范围大,大的数据传给小的float就会报错。