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

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解