java 中float 和double有什么区别,对于赋值来说,求解。谢谢!

2025-03-01 11:57:04
推荐回答(4个)
回答1:

  1. float为单精度浮点类型,占4个字节,能表示的数范围小;double为双精度浮点类型,占8个字节,能表示的数范围大。

  2. 对于赋值来说,因为声明浮点数时默认为double类型,所以float需要在数的的后面添加f/F;

    例:

    float a=1.2   //错误

    float a=1.2f  //正确

    float a=1.2F  //正确

    double b=1.2  //正确

    double b=1.2d  //正确

    double b=1.2D   //正确

回答2:

两者都能表示小数,但是精度是不一样的,float是单精度,而double是双精度的,在取舍的时候会造成小数不一样。

回答3:

float 占4个字节 精度是6位有效数字 取值范围是10的-38次方到10的38次方
double 占8个字节 精度是15位有效数字 取值范围是10的-308次方到10的308次方

赋值时float型变量强制后面用f结尾,float a=6.0f;
注意float是6位有效数字,第7位数字将会产生四舍五入
所以如果一个float变量 这样定义: float a=6.12345675; 则第7位将产生四舍五入(5及5以下的都将舍去)

回答4:

  1. 存储范围不一样,一个4字节一个8字节

  2. 精度不一样,大概可以这样理解,同样表示圆周率一个3位小数一个10位小数的样子