本帖最后由 zhq195w 于 2012-12-02 21:33:23 编辑
import java.lang.*;
class CRectangle{
double width;
double 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);
}
}
如果我把width变量的类型改为float就会报错:可能损失精度。float的范围有那么大啊,这是怎么回事?
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);
}
}
报错了:精度损失,怎么回事?常量15.6被认为是double型的了,如果要想让它是float型的有两种方法
1.(float)15.6
2. 15.6f
把double型的值赋给float型的变量,所以就报错了double 是双精度型的,float是单精度的,double 取得的范围大,大的数据传给小的float就会报错。