基本数据类型float和double的区别
2024-10-12 04:54:48
float : 单精度浮点数
double : 双精度浮点数
两者的主要区别如下:
01.在内存中占有的字节数不同
单精度浮点数在机内存占4个字节
双精度浮点数在机内存占8个字节
02.有效数字位数不同
单精度浮点数有效数字8位
双精度浮点数有效数字16位
03.数值取值范围
单精度浮点数的表示范围:-3.40E+38~3.40E+38
双精度浮点数的表示范围:-1.79E+308~-1.79E+308
04.在程序中处理速度不同
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快
如果不声明,默认小数为double类型,所以如果要用float的话,必须进行强转
例如:float a=1.3; 会编译报错,正确的写法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不区分大小写)
注意:float是8位有效数字,第7位数字将会四舍五入
面试题:
1.java中3*0.1==0.3将会返回什么?true还是false?
fale,因为浮点数不能完全精确的表示出来,一般会损失精度。
2.java中float f = 3.4;是否正确?
不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造 成精度损失,因此需要强制类型转换float f = (float)3.4;或者写成 float f = 3.4f;才可以。
public static void main(String[] args) {
System.out.println(3*0.1);
System.out.println(3*0.1==0.3);
//float是8位有效数字,第7位数字将会四舍五入
float a =1.32344435f;
System.out.println(a);
}
输出结果:
最新文章
- c++ const函数是什么意思
- SGU 180 Inversions
- 新浪微博模拟登陆+数据抓取(java实现)
- 百度地图API:利用瓦片生成工具,自定义背景图片
- git设计哲学
- BZOJ 3240 矩阵游戏
- C# .net基于Http实现web server(web服务)
- PHP 数组模糊查询
- Spring消息之JMS.
- mysql 设置初始密码
- 怎么把微信里的文件发到QQ?
- 在Python程序中的进程操作,multiprocess.Process模块
- RMQ--ST表
- CF1101D GCD Counting
- day037 mysql之单表查询
- Python图形开发之PIL
- 【转】浅谈Nginx负载均衡与F5的区别
- JavaScript 基本数据类型和引用类型的区别详解
- exe4j 安装
- Balanced Search Trees
热门文章
- IO流实例
- python----运行机制
- POI导入excel时读取excel数据的真实行数
- C++(+类型加强 +加入面向对象)
- SpringMVC Maven项目 java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServle
- hbase 快速开发
- 使用PageHelper插件分页结合mybatis返回的列表个数不对问题解决
- nuxtJs中直接使用自带的@nuxtjs/axios
- to_date
- Linux下的.txt文件复制到win下面不自动换行