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

Python核心技术开发指南(012)——浮点数


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

在这里插入图片描述
在Python中,浮点数(float)是用于表示带有小数部分的数值的数据类型,适用于需要精确到小数位的场景,如科学计算、度量衡表示等。

浮点数的表示形式

Python中的浮点数可通过两种形式表示:

  1. 十进制小数形式:由整数部分、小数点(.)和小数部分组成。例如:3.14-0.0015.(省略小数部分,等价于5.0)、.7(省略整数部分,等价于0.7)。
  2. 科学计数法:用于表示极大或极小的浮点数,以eE连接基数与指数,格式为aeb(表示a × 10^b)。例如:2.5e3(等价于2500.0)、6.2e-2(等价于0.062)、-1.0E-5(等价于-0.00001)。

浮点数的类型标识为<class 'float'>,可通过type()函数验证:

print(type(3.14))    # 输出<class 'float'>
print(type(2.5e3))   # 输出<class 'float'>

浮点数的特性

  1. 有限精度:浮点数在计算机中以二进制形式存储,部分十进制小数(如0.1)无法被精确表示,可能存在精度误差。例如:

    print(0.1 + 0.2)  # 输出0.30000000000000004(而非预期的0.3)
    

    这是由于0.10.2的二进制表示为无限循环小数,存储时会被截断,导致运算结果出现微小偏差。

  2. 取值范围:浮点数的取值范围受限于内存,通常可表示约±1.7 × 10^308的数值(超过此范围会表示为inf-inf,即无穷大)。例如:

    print(1.0e400)  # 输出inf(超过最大可表示值)
    
  3. 不可变性:与整数类似,浮点数对象一旦创建,其值不可修改。对浮点数的运算会生成新的浮点数对象。例如:

    x = 2.5
    y = x + 1.0  # 生成新对象3.5,x仍引用原对象2.5
    
  4. 特殊浮点值

    • inf(正无穷大)和-inf(负无穷大):表示超出浮点数取值范围的数值。
    • nan(Not a Number,非数值):表示无效的数值运算结果(如0.0 / 0.0)。
      这些特殊值可通过math模块访问或判断:
    import math
    print(math.isinf(1.0e400))  # 输出True(判断是否为无穷大)
    print(math.isnan(0.0 / 0.0))  # 输出True(判断是否为非数值)
    

浮点数支持的操作

浮点数支持与整数类似的运算操作,主要包括:

  1. 算术运算+(加)、-(减)、*(乘)、/(除)、//(整除)、%(取余)、**(幂运算)。需注意,整数与浮点数混合运算的结果为浮点数:

    print(3 + 2.5)    # 输出5.5(整数与浮点数相加,结果为浮点数)
    print(7.0 // 3)   # 输出2.0(整除结果仍为浮点数)
    print(2.5 ** 2)   # 输出6.25(幂运算)
    
  2. 比较运算==(等于)、!=(不等于)、>(大于)等,返回布尔值。由于精度误差,直接比较浮点数是否相等可能不准确,建议通过判断两者差值是否小于某一阈值(如1e-9)实现近似比较:

    a = 0.1 + 0.2
    b = 0.3
    print(a == b)                  # 输出False(直接比较不准确)
    print(abs(a - b) < 1e-9)       # 输出True(近似比较)
    
  3. 类型转换:通过float()函数可将整数、字符串等转换为浮点数。例如:

    print(float(5))       # 输出5.0(整数转换为浮点数)
    print(float("3.14"))  # 输出3.14(字符串转换为浮点数)
    
  4. 数学函数math模块提供了丰富的浮点数运算函数,如math.sqrt()(开平方)、math.sin()(正弦)、math.round()(四舍五入)等。例如:

    import math
    print(math.sqrt(25.0))  # 输出5.0(开平方运算)
    print(round(3.1415, 2))  # 输出3.14(保留2位小数)
    

总结

Python的浮点数类型用于表示带小数部分的数值,支持科学计数法,但受限于二进制存储机制存在精度误差。浮点数运算规则与整数类似,但需注意混合运算的类型转换及精度比较问题。

http://www.dtcms.com/a/349002.html

相关文章:

  • 如何捕获组件的异常情况
  • 一个简单的html音乐播放器
  • 阿里发布Qoder:颠覆软件开发体验的AI编程平台
  • 前端应用容器化,基于Docker多阶段构建的最佳实践
  • More Effective C++ 条款05: 谨慎定义类型转换函数
  • Java 泛型的“擦除”与“保留”:一次完整的编译与反编译实验
  • Docker中Dify镜像由Windows系统迁移到Linux系统的方法
  • 【计算机408数据结构】第二章:基本数据结构之线性表
  • Leetcode 3660. Jump Game IX
  • 新的 Gmail 网络钓鱼攻击利用 AI 提示注入来逃避检测
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
  • 【URP】[投影Projector]解析与应用
  • 【cs336学习笔记】[第6课]内核优化与Triton框架应用
  • 如何在算力时代乘风破浪?
  • 深度学习中的模型量化及实现示例
  • 【RAGFlow代码详解-4】数据存储层
  • MySQL学习记录-基础知识及SQL语句
  • 【零代码】OpenCV C# 快速开发框架演示
  • 在 Docker 容器中查看 Python 版本
  • C语言第十二章自定义类型:结构体
  • LangChain RAG系统开发基础学习之文档切分
  • Python核心技术开发指南(016)——表达式
  • 多线程——认识Thread类和创建线程
  • 【记录】Docker|Docker镜像拉取超时的问题、推荐的解决办法及安全校验
  • FPGA时序分析(四)
  • asio的线程安全
  • 使用Cobra 完成CLI开发 (一)
  • 3.1 存储系统概述 (答案见原书 P149)
  • C++ string自定义类的实现
  • 【论文阅读 | arXiv 2025 | WaveMamba:面向RGB-红外目标检测的小波驱动Mamba融合方法】