Java学习 --- float VS double
来源:互联网 发布:软件行业方向 编辑:程序博客网 时间:2024/06/05 04:33
我们在MyEclipse中写Java程序时,当我们声明一个float变量时,在接下来的初始化过程时,必须在浮点数字面量的后面加上标志: f
这是为什么呢???
首先,在Myeclipse中的提示是:Type mismatch, cannot convert from double to float;
从这里我们应该明白了: 浮点数字面量的默认值是一个double类型的值,所以当它向float类型convert时,会损失精度;
大家看看这段代码:
int aa = 0x7fffffff;
int bb = 0x7ffffff0;
float af = aa;
float bf = bb;
System.out.println(af);
System.out.println("bf 的值是: " + bf);
System.out.println("bf + 1的值是:" + (bf + 1));
System.out.println("从bf和(bf+1)的输出可以知道:: float类型的值是十分的不精确的,所以我们在实际的编程中是不使用float类型的数据的");
double af1 = aa;
double bf1 = bb;
System.out.println("af1(double): " + af1);
System.out.println("bf1(double): " + bf1);
System.out.println("bf1 + 1: " + (bf1 + 1));
//因此double类型比float类型更加精确,所以在使用浮点数字面量的时候,我们需要注意的是它的默认值是double,所以要想向float类型赋值必须在末尾加上f
//float ff = 2.0; //此处是错误的,原因是:2.0 是一个浮点数字面量,它的类型是double,由于double类型比float类型大,所以不能直接赋值
float ff = 2.0f; //在定义float类型的数据时,Java语言的要求是:必须在浮点数字面量的后面加上标志: f
2.14748365E9
bf 的值是: 2.14748365E9
bf + 1的值是:2.14748365E9
从bf和(bf+1)的输出可以知道:: float类型的值是十分的不精确的,所以我们在实际的编程中是不使用float类型的数据的
af1(double): 2.147483647E9
bf1(double): 2.147483632E9
bf1 + 1: 2.147483633E9
- Java学习 --- float VS double
- float vs double
- float VS double
- Float Vs Double
- JAVA菜鸟入门(7) default parameter , float/double vs BigDecimal
- java double float 区别
- java float double
- [JAVA] float,double精度
- [JAVA] float,double计算方法
- java float double
- java学习之数值型别(int,float,double等)
- java学习之数值型别(int,float,double等)
- Java的float和double
- 转:java float double精度
- java中的float和double
- java float double int 疑惑
- Java中的Float和double
- java double float 精度计算
- linux常用命令--文件和目录
- 在JAVA中如何跳出当前的多重嵌套循环
- Android应用各个开放平台市场
- yaffs2移植到内核linux2.6.38
- 概率图模型之有向图与无向图
- Java学习 --- float VS double
- 2012年河北金融学院CSDN高校俱乐部新学员见面会
- ajax实现百度搜索建议
- ASP实现分页查询
- JAVA递归遍历文件夹
- epel yum 安装 trickle
- uva 10891
- 中国互联网创业者的困境
- bash之read命令