float精度问题

单精度浮点数(float)

测试发现,0.99999999f==1f 为true

不能用f1==f2来判断两个数相等,是因为虽然f1和f2在可能是两个不同的数字,但是受到浮点数表示精度的限制,有可能会错

要点

  1. 单精度浮点数(float)是用来表示带有小数部分的实数,表示范围大,但是有不精确、不连续的特点。
  2. 占用4个字节(32位)存储空间。包括符号位1位,阶码8位(移码表示),尾数23位(原码表示,小数点前隐含一个1),偏移值2^(n-1) -1。
  3. 其数值范围为-3.4E38~3.4E38,最多有7位十进制有效数字。
  4. 如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。在这里插入图片描述

在这里插入图片描述

补充资料:

计算机组成与系统结构(裘雪红)第二章的内容在这里插入图片描述
参考资料:
Java 浮点数 float和double类型的表示范围和精度
IEEE754单精度浮点数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值