Python基本数据类型之浮点数float

2024-08-27 03:52

本文主要是介绍Python基本数据类型之浮点数float,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源: “码农不会写诗”公众号
链接:Python基本数据类型之浮点数float

文章目录

  • 01 基本概念
  • 02 基本运算
  • 03 拓展1之decimal模块

浮点数float

  Python基本数据之浮点数(float)即带有小数的数字。


01 基本概念

即带有小数的数字。

在Python中,浮点数用float类型表示,可以存储有小数点的数,并支持小数点后的精确计算。

浮点数在计算机中以二进制形式存储,这就意味着可能无法精确表示某些十进制小数。例如,0.1在二进制中是一个无限循环小数,计算机只能存储其近似值。这种表示误差可能导致一些看似简单的运算产生意外结果,如0.1 + 0.2的和并不是精确的0.3,而是0.30000000000000004。

通常采用十进制和科学计数法表示浮点数

num1 = 3.14    # 3.14 十进制表示
num2 = 1e2     # 100 科学计数法

以上除八进制外,其他均为常用进制,需掌握。

02 基本运算

a = 3.5
b = 2.0
print(a + b)   # 5.5, 加法
print(a - b)   # 1.5, 减法
print(a * b)   # 7.0, 乘法
print(a / b)   # 1.75, 除法
print(a ** b)  # 12.25, 幂运算

格式化浮点数输出,主要有采用format()函数和格式化字符串字面量f-string方式。

pi = 3.1415927
print("{:.2f}".format(pi))    # 3.14, 保留两位小数
print(f"{pi:.3f}")            # 3.142, 保留三位小数
print("{:.5f}".format(1.23))  # 1.23000, 不足补零

需要注意的是,由于精度问题,直接比较两个浮点数是否相等可能不准确,可以使用math.isclose()函数进行比较,它允许在指定的容忍度内比较两个浮点数是否足够接近。

import math
a = 0.1 + 0.2
b = 0.3
# True, 根据指定公差(默认1e-09)判断是否近似相等 
print(math.isclose(a, b))

Python中浮点数还包括正无穷(float(‘inf’))、负无穷(float(‘-inf’)) 和 NaN(Not a Number,float(‘nan’))。

print(float('inf'))   # inf, 正无穷
print(float('-inf'))  # -inf, 负无穷
print(float('nan'))   # nan, 不是一个数字
print(float('inf') / 1000000)  # inf, 正无穷除以任何正数仍然是正无穷

注意浮点数转换为整数时,小数部分将被截断。

print(float(10))   # 10.0
print(int(3.999))  # 3, 小数部分被截断

03 拓展1之decimal模块

decimal模块提供了更精确的十进制数运算。

浮点数是Python中重要的数值类型,但精度问题需要在使用时格外注意。通过合理的方法,如使用decimal模块,可以在很多情况下避免精度问题,从而编写出更精确、更可靠的代码。


from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)  # 0.3, 精确表示
print(0.1 + 0.2)  # 0.30000000000000004, 近似表示

需要注意的是,切勿滥用decimal模块,因为每一行代码都是有代价的,尤其像Python这种解释型编程语言。


今天的内容就到这里啦,先拜了个拜~

上一篇:Python基本数据类型之整数int

这篇关于Python基本数据类型之浮点数float的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110556

相关文章

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker