📜  Python中的浮点()(1)

📅  最后修改于: 2023-12-03 15:19:30.853000             🧑  作者: Mango

Python中的浮点数

在编程中,浮点数是非常常见的数据类型,Python也不例外。浮点数是一种有小数点的数值,可以是正数、负数或零。其特点是可以表示非常大的数和非常小的数,并且有一定的精度损失。

定义浮点数

在Python中,我们可以通过直接赋值或使用科学计数法来定义一个浮点数。例如:

num1 = 3.14  # 直接赋值
num2 = 6.022e23   # 科学计数法
浮点数的运算

和整数一样,浮点数也支持基本的算术运算。但是需要注意的是,在做浮点数运算时容易出现精度损失问题。例如:

print(0.1 + 0.2)   # 0.30000000000000004

这是由于浮点数的存储方式和计算方式决定的。如果希望避免精度损失,可以使用decimal模块对浮点数进行精确计算,或者使用一些常见的hack技巧。例如:

from decimal import Decimal  # 导入decimal模块

print(Decimal('0.1') + Decimal('0.2'))  # 0.3

# hack技巧
print(round(0.1 + 0.2, 1))  # 0.3
判断浮点数大小

在Python中,我们可以使用比较运算符来判断浮点数的大小关系,但是需要注意的是,由于精度损失问题,浮点数之间的比较并不总是可靠。例如:

print(0.1 + 0.2 == 0.3)  # False

这时我们可以使用math.isclose函数对浮点数进行近似比较。例如:

import math

print(math.isclose(0.1 + 0.2, 0.3))  # True
浮点数的类型转换

和其他数据类型一样,浮点数也可以进行类型转换。例如:

num1 = 3.14
num2 = int(num1)   # 转换成整数
num3 = str(num1)   # 转换成字符串

需要注意的是,由于浮点数的精度问题,转换为整数时会丢失小数部分。例如:

print(int(3.14))  # 3
总结

浮点数是Python中非常常见的数据类型之一,具有非常广泛的应用。在处理浮点数时,我们需要注意精度损失问题,并适时进行类型转换和精确计算。