博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本数据类型float和double的区别
阅读量:5311 次
发布时间:2019-06-14

本文共 926 字,大约阅读时间需要 3 分钟。

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);    }

输出结果:

转载于:https://www.cnblogs.com/insist-bin/p/11106351.html

你可能感兴趣的文章
Cstring获取第N个字符
查看>>
js 接收浏览器的参数值
查看>>
JSON
查看>>
Python提示信息表示内容
查看>>
manjaro i3 配置笔记
查看>>
Anaconda3 打开Navigator报错
查看>>
static_cast而后RTT1
查看>>
Apache 2.4.12 64位+Tomcat-8.0.32-windows-x64负载集群方案
查看>>
oc2---类
查看>>
3. 尾缀
查看>>
.net之工作流工程展示及代码分享(三)数据存储引擎
查看>>
HDU - 2680(逆向思维,djikstra
查看>>
overflow:auto学习
查看>>
Android屏幕设置只允许上下旋转
查看>>
Android杂谈--修改Android系统内/system目录权限使其可读写
查看>>
函数式语言
查看>>
android 解析XML方式(二)
查看>>
ASP.Net AJAX CalendarExtender 使用
查看>>
oracle 触发器
查看>>
已有数据的表添加自增主键
查看>>