在Python数据类型中,浮点数(float)是用于表示带有小数部分的数字的重要类型。无论你是刚入门编程的新手,还是希望深入理解Python浮点数工作原理的开发者,本文都将带你从基础到进阶全面了解浮点数。
浮点数就是包含小数点的数字,比如 3.14、-0.001 或 2.0。在Python中,只要数字中包含小数点,它就会被自动识别为浮点数类型。
有多种方式可以创建浮点数:
3.141.23e-4 表示 0.000123float() 函数转换其他类型:float("3.14") 或 float(5)# 示例:创建浮点数pi = 3.14159scientific = 6.022e23 # 阿伏伽德罗常数from_string = float("2.718")from_int = float(10) # 结果是 10.0print(type(pi)) # <class 'float'>print(scientific) # 6.022e+23print(from_string) # 2.718print(from_int) # 10.0 这是很多初学者容易困惑的地方:浮点数精度。由于计算机内部使用二进制表示浮点数,某些十进制小数无法精确表示,从而导致微小误差。
# 示例:浮点数精度问题a = 0.1b = 0.2c = a + bprint(c) # 输出: 0.30000000000000004print(c == 0.3) # 输出: False! 这并不是Python的bug,而是所有使用IEEE 754标准的编程语言共有的现象。解决方法包括使用 round() 函数四舍五入,或使用 decimal 模块进行高精度计算。
# 使用 round() 解决精度问题a = 0.1b = 0.2c = round(a + b, 2) # 保留两位小数print(c == 0.3) # True# 使用 decimal 模块(适用于金融计算等场景)from decimal import Decimalx = Decimal('0.1')y = Decimal('0.2')z = x + yprint(z == Decimal('0.3')) # True Python提供了丰富的内置函数来处理浮点数运算:
abs(x):返回绝对值round(x, n):四舍五入到n位小数math.ceil(x) / math.floor(x):向上/向下取整int(x):截断小数部分(不是四舍五入)import mathnum = -3.789print(abs(num)) # 3.789print(round(num, 1)) # -3.8print(math.ceil(num)) # -3print(math.floor(num)) # -4print(int(num)) # -3 (直接截断) Python浮点数还支持一些特殊值:
inf:正无穷大(如 float('inf'))-inf:负无穷大nan:Not a Number(非数字,如 float('nan'))# 特殊浮点数示例pos_inf = float('inf')neg_inf = float('-inf')not_a_num = float('nan')print(pos_inf > 999999999) # Trueprint(neg_inf < -999999999) # Trueprint(not_a_num == not_a_num) # False!NaN 不等于任何值,包括自己 通过本教程,我们全面了解了Python浮点数的基本概念、创建方式、精度问题、常用操作以及特殊值。记住,在进行涉及金钱或高精度要求的计算时,应优先考虑使用 decimal 模块而非普通浮点数。
掌握这些知识,你就能更自信地处理各种浮点数运算场景,避免常见的陷阱。继续练习吧,编程之路越走越宽!
本文由主机测评网于2025-12-17发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025129265.html