Java笔记10(浮点类型)

Java的浮点类型包括float和double,用于表示带有小数的数值。float占用4字节,精度较低,而double占用8字节,精度更高。浮点数在计算机中以特定格式存储,可能导致精度损失。在声明浮点型常量时,需使用后缀f或F来指定float类型。通常推荐使用double,因为其精度更高。进行浮点数的相等判断时,要注意由于精度问题可能导致不准确的结果,应比较它们的差值是否在一个可接受的范围内。
摘要由CSDN通过智能技术生成

浮点类型

       基本介绍:Java 的浮点类型可以表示一个小数,比如 123.4 ,7.8 ,0.12 等等

       分类:

类型

占用存储空间

范围

单精度float

4字节

-3.403E38~3.403E38

双精度double

8字节

-1.798E308~1.798E308

       说明:

                1)关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位

                2)尾数部分可能丢失,造成精度损失(小数都是近似值)

       浮点类型使用细节:

                1.与整数类型相似,java浮点类型也有固定的范围和字段长度,不受具体OS(操作系统)的影响(float 4个字节,double8个字节)

                2.Java的浮点型常量默认为double型,声明float型常量,须后加“f”或“F”

float m1 = 1.1;

//是不对的,1.1默认为double,不能转成float

float m2 = 1.1F;

System.out.println(m2);

//这是对的,两边都是float,匹配

double m3 = 1.1;

System.out.println(m3);

//对的,两边都是double

double m4 = 1.1F;

System.out.println(m4);

//也是对的,float精度没double高,可以转换

       3. 浮点型常量表示形式

              十进制数形式:如:5.12  512.0f  .512(0.512 这个0可以省略 但是.不能省略)

科学计数法形式:如:5.12e2(5.12*10的2次方)  5.12E-2(5.12/10的2次方)                

System.out.println(5.12e2);//512.0

System.out.println(5.12E-2);//0.0512

        4.通常情况下,应该使用double型,因为它比float型更精准

double nm1 = 2.1234567851;
float nm2 = 2.1234567851F;
System.out.println(nm1);      //2.1234567851
System.out.println(nm2);      //2.1234567

        5.浮点数使用陷阱               

2.7和8.1 / 3比较
double num3 = 2.7;
double num4 = 8.1 / 3;
System.out.println(num3); //2.7
System.out.println(num4); //接近2.7的一个小数,而不是2.7

                当我们对运算结果是小数的进行相等判断,要小心

                应该是以两个数的差值的绝对值在某个精度范围类判断

                如果是直接查询得到的小数或者直接赋值,是可以判断相等的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值