浮点数(float)是 Python 中的一个基本数据类型,用来表示带有小数部分的数字,比如 3.14、-0.001 ,常用于科学计算、统计分析和日常数学运算。
在 Python 中,定义浮点数常直接用小数点或者科学计数法表示:
x = 3.14 # 普通小数 y = -0.5 # 负小数 z = 2.5e3 # 科学计数法,表示 2.5 × 10³ = 2500.0Python 浮点数基于 IEEE 754 标准实现,通常占用 64 位(双精度),这意味着它有一定的精度和范围限制。
Python浮点数的常见操作浮点数支持多种数学运算和函数操作,下面罗列了几种常见的浮点数操作。
1) 基本数学运算浮点数可以进行加、减、乘、除等基本运算,结果通常也是浮点数。
Python 的 math 模块提供了许多针对浮点数的函数,比如取整、绝对值、三角函数等。
使用 math 模块前需要导入模块,例如:
上述程序返回的结果通常是浮点数。
3) 类型转换在 Python 中,可以用 float() 函数将其他类型转换为浮点数,例如整数或字符串。也可以用 int() 或 str() 等函数将浮点数转换为其他类型。
例如:
注意:如果字符串无法转换为浮点数(比如 "abc"),会抛出 ValueError 异常。
Python浮点数的精度问题浮点数在计算机中以二进制形式存储,这导致某些小数无法被精确表示。
例如,0.1 在二进制中是一个无限循环小数,因此会出现精度误差:
这是 IEEE 754 标准的常见现象,不是 Python 独有的问题。
处理精度问题,Python 程序中可以借助 round() 函数或者 decimal 模块解决:
1) round() 函数可以控制小数位数。例如:
print(round(0.1 + 0.2, 1)) # 输出 0.3
2) decimal 模块可以提供更高精度的十进制运算。例如:
由于精度问题,直接比较两个浮点数是否相等可能会出现意外结果。例如:
解决方法是比较它们的差值是否足够小。例如:
a = 0.1 + 0.2 b = 0.3 print(abs(a - b) < 1e-10) # 输出 True(差值小于 10⁻¹⁰)这种方法在实际编程中更可靠。
总结 在 Python 中使用 float 浮点数类型时,还有以下几点需要注意:除法结果:即使两个操作数都是整数,/ 运算也返回浮点数,例如 4 / 2 = 2.0;
溢出:浮点数的范围很大(约 ±1.8 × 10³⁰⁸),但超过范围会变为 inf(无穷大);
格式化输出:可以用字符串格式化控制小数位数,例如print(f"{3.14159:.2f}")输出 "3.14"。