Python浮点数是一种用于表示实数的数据类型,它允许我们使用小数点来表示数字,在Python中,浮点数有两种表示方法:单精度浮点数(float)和双精度浮点数(double),单精度浮点数占用4个字节(32位),双精度浮点数占用8个字节(64位)。
1、创建浮点数
在Python中,我们可以使用以下几种方法创建浮点数:
- 直接赋值:将一个数字或者表达式的结果直接赋值给一个变量,Python会自动将其转换为浮点数。
a = 3.14 b = 2.71828 c = 0.5 * a
- 使用float()函数:将一个数字或者表达式的结果转换为浮点数。
d = float(3) e = float(2.5) f = float(0.5)
- 使用complex()函数:创建一个复数,其中实部和虚部都是浮点数。
g = complex(3, 2) h = complex(1.5, 0.5) i = complex(0.5, 0.5)
2、浮点数的运算
Python支持对浮点数进行加、减、乘、除等基本运算,在进行这些运算时,Python会自动处理浮点数的精度问题,由于计算机内部存储浮点数的方式,有些情况下可能会出现精度损失的问题,为了避免这种情况,我们可以使用decimal模块来进行精确的浮点数运算。
from decimal import Decimal j = Decimal('0.1') + Decimal('0.2') k = Decimal('0.3') * Decimal('0.4') l = Decimal('0.5') / Decimal('0.6')
3、浮点数的比较
我们可以使用比较运算符(如==、!=、>、<、>=、<=)来比较两个浮点数的大小,需要注意的是,由于浮点数的精度问题,直接比较两个浮点数是否相等可能会导致误判,为了避免这种情况,我们可以设置一个很小的正数(如1e-9),然后比较两个浮点数之差的绝对值是否小于这个正数,如果小于这个正数,则认为这两个浮点数是相等的。
epsilon = 1e-9 def is_equal(a, b): return abs(a - b) < epsilon m = 0.1 + 0.2 n = 0.3 * 0.4 o = is_equal(m, n) # o为True,因为m和n非常接近,可以认为它们是相等的
4、格式化输出浮点数
我们可以使用字符串的format()方法或者f-string来格式化输出浮点数,我们可以指定输出的小数位数、千位分隔符等。
p = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173"pi": {"value": "圆周率", "precision": 1, "width": "", "separator": "."}}) print("圆周率的值约为:{:.{}f}".format(pi["value"], pi["precision"]))
Python中的浮点数是一种用于表示实数的数据类型,它可以进行加、减、乘、除等基本运算,在进行浮点数运算时,需要注意精度问题,可以使用decimal模块进行精确的浮点数运算,我们还可以通过设置一个很小的正数来判断两个浮点数是否相等,我们可以使用字符串的format()方法或者f-string来格式化输出浮点数。