当前位置: 首页 > news >正文

【C】为什么7.0会被存储为6.99999

在《C Primer Plus》第 6 版 3.3.3 节 浮点数的介绍中,作者说浮点数通常只是实际值的近似值,例如,7.0可能被储存为浮点值6.99999。

如果采用32位的IEEE 754浮点表示形式来存储7.0,那么它的二进制表示将如下:

  • 符号位(1位):0(表示正数)
  • 指数部分(8位):10000001(以偏移方式存储,通常为中立值127加上实际的指数值)
  • 尾数部分(23位):110 0000 0000 0000 0000 0000(以二进制表示7.0的小数部分)

这是一个精确表示,为什么说可能会被储存为6.99999呢?

被储存为6.99999的意思应该是它们在计算机中的二进制表示是一样的。

从十进制值上看,7.0和6.99999是不会相等的,但是0.99999无法使用精确的二进制表示,而浮点数在计算机中的表示又是有精度的,也就是有有效位数,它不可能表示出一个无限循环的数。所以在一定精度内,7.0和6.99999的二进制表示是可能相等的。

所以说,浮点数只是实际值的近似值,在一定误差内的两个浮点数可以认为是相等的。

http://www.lryc.cn/news/210287.html

相关文章:

  • Framework -- 系统架构
  • 1.1 计算机安全概念
  • react中的函数柯里化
  • Unity点乘的实战案例1
  • Hive数据查询详解
  • 人工智能基础_机器学习008_使用正规方程_损失函数进行计算_一元一次和二元一次方程演示_sklearn线性回归演示---人工智能工作笔记0048
  • 【详细】Java网络通信 TCP、UDP、InetAddress
  • Linux(Centos7)操作记录
  • Vue全局事件总线实现任意组件间通信
  • linux-tools-$(uname -r) linux-headers-$(uname -r)工具安装:
  • hive sql,年月日 时分秒格式的数据,以15分钟为时间段,找出每一条数据所在时间段的上下界限时间值(15分钟分区)
  • C#学习系列之继承
  • PyTorch入门学习(六):神经网络的基本骨架使用
  • “体检报告健康解读技术传承人”授牌仪式圆满结束
  • 查询计算机GUID码
  • MediaPlayer+TextureView实现视频播放功能
  • webpack 优化
  • 保障 Golang 项目安全的最佳实践
  • PG物理备份与恢复之pg_basebackup
  • npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
  • Android 13.0 通过驱动实现禁用usb鼠标和usb键盘功能
  • Ubuntu 22.04配置/etc/rc.local开机自启文件
  • python爬虫之正则表达式解析实战
  • 什么是虚拟dom?
  • 大数据学习(18)-任务并行度优化
  • C++学习笔记之四(标准库、标准模板库、vector类)
  • IDEA部署SSM项目mysql数据库MAVEN项目部署教程
  • uniapp 将流转化为视频并播放 微信小程序
  • 【软考】系统集成项目管理工程师(十)项目质量管理【3分】
  • 七层负载均衡 HAproxy