关于java中float和int 精度和范围的问题
2016-03-11 15:35
375 查看
曾经和同学讨论过,java中float和int之间的转化关系,在之前片面的学习java基础时感觉int类型不如float类型的精度高,原因是float可以表示小数,而int只能表示整数。
后来翻书时突然发现并不是这样(java核心编程卷P(43)):例123456789是一个比较大的int型整数,它转float时结果大小相同,但因为int表示的位数(32位)比float表示的位数(32-1(符号位)-8(指数位)=23位)多,所以int精度比float精度大,在int转float时可能丢失精度,而float因为有8位指数位,所以float存储的数值最大值高于int.
后来翻书时突然发现并不是这样(java核心编程卷P(43)):例123456789是一个比较大的int型整数,它转float时结果大小相同,但因为int表示的位数(32位)比float表示的位数(32-1(符号位)-8(指数位)=23位)多,所以int精度比float精度大,在int转float时可能丢失精度,而float因为有8位指数位,所以float存储的数值最大值高于int.
相关文章推荐
- 组合属性注入spring
- JAVA socket编程
- 开发中碰到的问题:java.lang.NoClassDefFoundError: com.baidu.location.LocationClient的解决办法
- Java体系和一些基本概念
- [Java实现]Filbonacci斐波那契数列递归带来的问题和改进
- java学习之服务端和客服端
- Java读取Properties配置文件几点注意事项
- Java通过Executors提供四种线程池
- Spring注入集合的值List,Set,Map,Properties
- java,map集合
- java,set集合
- Java内存管理:深入Java内存区域
- java,list集合类
- java 遍历Map的四种方法
- 文件读写操作-Java
- 第一个java程序和命令行
- Java IO——Socket:通过多线程实现多客户端与一个服务端通信
- Java IO——Socket:通过多线程实现多客户端与一个服务端通信
- Eclipse项目分包管理
- java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹