JAVA问题 float num=10.0F里的F是什么

来源:百度知道 编辑:UC知道 时间:2024/05/03 01:59:42
class ifelse{
public static void main(String agrs[]){
float num=10.0F;
double num1=10.0;
if(num==num1){
System.out.println("num等于num1");
}else{
System.out.println("num不等于num1");
}
}
}

float num=10.0F里的F是什么,好象只能用F,为什么?
那如果改成float num=10.2F;
double num1=10.2;
那为什么就不等于了呢?

10.0如果不加f,则被认为是double型的
所以,如果声明float,则要加上f
大小写一样

对于补充的回答
0.1没办法用二进制精确表示,而float和double的精度不同,保留的位数不同,所以会有差别

所以,小数后边如果是0或者5,都不会有问题,但是其他的就有问题了。归根结底是精度问题

F 表示浮点型。
float num=10.2F 这句话中,即使没有F也可以的。

浮点类型:float型常量后面要加后缀f或者F
如:float x=22.67f
或者float x=22.67F
如果把后缀省略了那么就认为这个常量是double型的