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版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型: