浮点数| 学习笔记

简介: 快速学习浮点数。

开发者学堂课程【PHP 基础入门课程(上) :浮点数】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/709/detail/12592


浮点数

 

内容简介:

一、目标

二、概念

三、扩展

四、小结

 

一、目标

掌握浮点型的概念和注意事项

 

二、概念

浮点数:

即有小数点的数(最典型的数)或者数值超过整型能表达的最大数

小数:1.2或者0.12

•科学计数法产生的数:4E3==4*10^3

•超过整型的数:PHP_INT_MAX+1

•浮点型存储空间:8个字节

浮点型能存储比整数型大的数的原因是浮点数是有有效位的

精度==> 精确度

•PHP7中的有效精度是13-14位,即数据如果有效数字超过该值,就会自动被四舍五入

•13位:肯定精准1

•14位:如果只有14位数字,那么精准;如果超出14位,第十四位是四舍五入的结果 PHP7 中浮点数最大表示:1.8e308

浮点数定义示例

#浮点数

#定义浮点数

$f1= 1.2;  //定义出两个浮点数

$f2= 4e5;

$f3 = PHP_INT_MAX +1;

var_dump($f1,$f2,$f3); //查看类型

浏览器搜索 localhost/09float.php 查看结果

结果显示:

float(0.12) float(4000) float(9.2233720368548E+18)

由结果看出结果都为浮点数

补充代码

echo PHP_INT_MAX, ‘<br/>’;

Echo $f3

刷新浏览器查看结果

9223372036854775807

9.2233720368548E+18

发现结果13位是精准数字第14位的8是由其余位数四舍五入得到

通过对比可以看出浮点数不精确但存储数据大

浮点数存储原理简介

浮点数分为整数部分和小数部分,转换成二进制的方式有所不同,10.5举例

•整数部分:十进制转二进制正常转即可,如10=> 1010

•小数部分:小数乘以2,取整数部分,如 0.5*2=1.0,取1(如果还可以取,继续乘以2)

(举例:如0.6*2=1.2,取1,剩下小数0.2继续乘2,以此类推直到取得整数,因此浮点数容易导致数据丢失)

•浮点数一共用8个字节存储,即64位,其中

•最左侧第一位是符号位:0表示正数,1表示负数

•从左侧开始第2位-54位存储数值(数值包含整数部分和小数部分)

•剩余9位存储幂:即10的N次方,N最大为308

例如有两个格子,一个可以放1一个可以放2,最大就只能放99。但是如果有两个格子,一个放一到九另外一个放的也是一到九,但这个一到九可以取出来作为十的N次方。十的九次方,再乘以前面的九,表示的范围就大多了。

所以浮点数存的数据比整数要大,但是不够精确。因为两位整数的话,可以最精确就是两位到99,而浮点数只有一位存真正的有效数字,所以变的不精确了,但是存储的值变大了。

 

三、扩展

1、浮点数适合运用在精度要求不高的地方(宇宙中有多少颗行星、人体内有多少细胞等),如果确定精度不会超过14位,那么浮点数是精准的。

2、浮点数不适合进行运算后的精确比较,因为小数部分转换成二进制的时候是“2的出来的,取不尽就会丢失精度

3、3与8.1/2.7比较,计算机是不会算出相等的结果的。

 

四、小结

1、浮点数是用来表示小数、科学计数法数以及超过整数大小的整数的

2、浮点数是有精度范围的,PHP7 中精度为14位有效数字

3、浮点数采用8个字节存储:存储原理为:符号位+54位数值位+9位指数位

4、浮点数的应用不建议在精度要求较高(超过14位)的地方使用

5、浮点数不适合进行精确比较(浮点数运算结果)

相关文章
|
缓存 前端开发 JavaScript
No30.精选前端面试题,享受每天的挑战和学习
No30.精选前端面试题,享受每天的挑战和学习
|
7月前
|
算法 数据安全/隐私保护
VSG虚拟同步发电机simulink建模与仿真
### VSG虚拟同步发电机Simulink建模与仿真简介 虚拟同步发电机(VSG)技术是电力电子领域的重要创新,尤其在可再生能源接入电网方面展现出巨大潜力。VSG通过先进的控制策略,使逆变器控制的电源系统(如光伏、风能)表现出与传统同步发电机类似的动态行为,提高电力系统的稳定性和兼容性。本课题基于MATLAB2022a进行VSG的Simulink建模与仿真,核心内容包括电流控制、电压控制、频率控制及虚拟惯量与阻尼控制。系统仿真结果展示了VSG的有效性,并验证了其在实际应用中的潜力。
|
数据采集 JSON JavaScript
django_vue3(vite+vue3)展示贵州省的疫情
django_vue3(vite+vue3)展示贵州省的疫情
134 0
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
2320 6
【超全详解】Maven工程配置与常见问题解决指南
|
机器学习/深度学习 传感器 人工智能
如何打造人工智能「云端芯」生态闭环
云知声专注物联网人工智能服务, 通过 AI 芯、AIUI、AI Service 三大解决方案支撑核心技术的落地和实现,目前已经在家居、汽车、医疗和教育等领域有广泛应用,形成了完整的「云端芯」生态闭环。 机器之心于近期对云知声 CEO 黄伟进行了专访,黄伟介绍了云知声的技术研究、「云端芯」产品战略、在车载和医疗行业的应用,以及对人工智能看法。
385 0
如何打造人工智能「云端芯」生态闭环
|
自然语言处理
网易有道将为微信用户提供免费外语微信翻译服务
  微信聊天时经常有些逼格高的朋友突然给你来一句英文,看了半天没明白,不回也不是。现在,微信与网易有道正式宣布达成合作,将为微信用户提供免费外语微信翻译服务。应对逼格的利器啊!(据腾讯第二季度财报信息显示,旗下的微信与WeChat合并月活跃用户已经达到了4.38亿。
1148 0
|
2天前
|
云安全 数据采集 人工智能
古茗联名引爆全网,阿里云三层防护助力对抗黑产
阿里云三层校验+风险识别,为古茗每一杯奶茶保驾护航!
古茗联名引爆全网,阿里云三层防护助力对抗黑产

热门文章

最新文章