单精度浮点数(float)加法计算出错
场景:
一个float型的变量赋值1170601,加上19000000,结果出现错误。
原因:
float占用4个字节(32位)存储空间,包括符号位1位,阶码位8位,尾数23位。浮点数精度与它的尾数有关。
尾数为二进制小数1.m,m为23位的小数。所以浮点数的精度为24位二进制有效位数。2的24次方为16777216。
19000000 > 16777216,做加法计算之后丢失精度导致结果出错。
解决方法:
将float用double替换,double占用8个字节(64位)存储空间,包括符号位1位,阶码位11位,尾数52位。
单精度浮点数(float)加法计算出错相关推荐
- 单精度浮点数 float、双精度浮点数 double
3.3 浮点数表示法 内容导视: 小数对应的二进制 科学计数法 浮点数表示法 最大值.最小值 特殊值 3.3.1 小数对应的二进制 之前漏掉了小数对应的二进制,现补上. 二进制转十进制 从个位数开始向 ...
- 【详细解说】单精度浮点数float取值范围
结论 先说结论, float能表示范围为:± 3.4e38 最大正数PosMax 3.402e38 最小正数PosMin 1.175e-38 最大负数NegMax -1.175-38 最小负数N ...
- 单精度浮点数的数学计算
加减法: 一.将十进制数变为二进制数 十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0.例如十进制的0.125,要转换为二进制的小数. 举例: 0. ...
- 什么是java双精度浮点数_什么是浮点型?单精度浮点数(float)和双精度浮点数(double)介绍...
作为一名java学习者,怎能不懂这些java基础中的基础呢?本文就带各位温顾温顾java浮点型.单精度浮点数.双精度浮点数. 浮点型首先明确java中浮点型数据类型主要有:单精度float.双精度do ...
- 单精度浮点数(Float)与双精度浮点数(Double)
前言 对于十进制的整数使用二进制表示很简单,但是对于十进制小数如何使用二进制进行存储?十进制的小数又何如使用二进制小数表示?此文章描述了如何将十进制小数转换为二进制小数以及浮点数再内存中时如何进行存储 ...
- java中单精度浮点数和双精度浮点数_什么是浮点型?单精度浮点数(float)和双精度浮点数(double)介绍...
作为一名java学习者,怎能不懂这些java基础中的基础呢?本文就带各位温顾温顾java浮点型.单精度浮点数.双精度浮点数. 浮点型首先明确java中浮点型数据类型主要有:单精度float.双精度do ...
- c语言里单精度浮点数和双精度浮点数的区别
单精度浮点数(float)和双精度浮点数(double)在C语言中是两种不同类型的数据.单精度浮点数占用4个字节的空间,精度范围在67位左右:双精度浮点数占用8个字节的空间,精度范围在1517位左右. ...
- 什么是浮点型?什么是单精度浮点数(float)以及双精度浮点数(double)?
前言 作为一名java学习者,怎能不懂这些java基础中的基础呢?本文就带各位温顾温顾java浮点型.单精度浮点数.双精度浮点数. 浮点型 首先明确java中浮点型数据类型主要有:单精度float.双 ...
- C语言中的float(单精度浮点数)
本文主要记录一下Float的一些基础知识. 在计算机界,有个规定叫IEEE754,它规定了如何以二进制的方式来存储10进制的数. 按照这个规定,单精度浮点数(float)这个数据类型所占内存大小为4个 ...
最新文章
- SharpGL学习笔记(一) 平台构建与Opengl的hello World
- JavaScript实现Interpolation search插值查找算法(附完整源码)
- 数组中只出现1次的2个数
- javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——applicationContext.xml
- apache2.2.15与PHP5.3.3安装设置完成后,apache启动失败
- sql server 存储过程的详解
- PyInstaller 生成exe文件
- idea一直在 downloading plugins for ... 失败
- 查询MySQL中某个数据库中有多少张表
- 如何在 macOS Monterey 中使用预览合并 PDF?
- VisualGDB系列9:配置VS直接通过SSH方式访问Linux项目
- restful架构风格设计准则(五)用户认证和session管理
- SQLServer 2016安装时的错误:Polybase要求安装Oracle JRE 7更新51或更高版本
- python打开360浏览器_使用python3.7 的pycharm selenium自动化测试中启动360浏览器、360极速浏览器的方法...
- 基础晶体管放大电路设计七步走
- linux进程调度器,Linux进程调度器基础讲解
- Spring控制Bean加载顺序
- 交叉编译使用 hostapd-2.0 在开发板上开机自启动无线网卡 AP 功能
- Vue3+TS 快速上手 (尚硅谷)
- BlockingQueue 详解