Java `float` 数据类型的解说
来源:互联网 发布:地面站软件 编辑:程序博客网 时间:2024/06/08 05:52
案例1:
int intMax1=2147483647;//int的最大值,int是4个字节 int intMax2=2147483600; float f1=intMax1;//int自动转成float float f2=intMax2; if(intMax1==intMax2){//比较结果为false System.out.println("="+intMax1); }else{ System.out.println("="+intMax2); } if(f1==f2){//比较结果为true System.out.println(f1); }else{ System.out.println(f2); }
案例1分析:
1.为什么intMax1的值不等于intMax2的值,而f1的值等于f2的值?
- intMax1,intMax2是int类型,比较肯定是不同,这个很容易理解
- f1,f2是由大int数据自动转成的,会出现溢出的现象。
2.大int值转float为什么会出现溢出
1)float 的存储知识:
1.float在计算机中使用4位字节(32位bit)来表示,具有7位或者8位有效数字 (这个特点会导致自动类型装换时会出现溢出)2.float占32bit ,其中:1位符号位, 8位指数位,23位尾数位 3.float数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位 (例如:2.14748365E9 有效位数是8位,精度失去了两位,2147483647导致47这两位丢失, 所以f1与f1比较的只比较8位,后两位丢失,所以f1与f2相同)
0 0
- Java `float` 数据类型的解说
- Java float数据类型
- java中得数据类型解说,静态static的理解
- ORACLE的数据类型float
- java中数据类型double&float
- Java基本数据类型:long与float之间的转换疑惑
- java当中float以及double数据类型的掌握
- java当中float以及double数据类型的掌握
- java当中float以及double数据类型的掌握
- java当中float以及double数据类型的掌握
- Oracle的数据类型float(b)
- Oracle的数据类型float(b)
- MySQL的float数据类型注意
- Java中泛型的解说
- C语言中float与double的详细解说
- 关于Java基础(基本数据类型Float)
- 定义数据类型时float double的使用
- java Byte和各数据类型(short,int,long,float,double)之间的转换
- 优先队列及java实现和用法
- Android EditText 使用
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏
- PHP之猴子吃桃
- 七桥问题
- Java `float` 数据类型的解说
- shell脚本练习(一)
- STL系列之二 stack栈
- 【总结】信息学竞赛第一年学习的所有STL函数
- eclipse中一些常见的报错处理(持续更新中……)
- 一个千万量级的APP使用的一些第三方库
- 闲着没事,写了个线性回归的源代码
- oracle 小问题之监听
- 深度学习与自然语言处理(7)_斯坦福cs224d 语言模型,RNN,LSTM与GRU