python浮点数的运算
问题
浮点数在计算机内部以二进制表示,并且无法准确地表示某些十进制小数(如 0.1)。这可能导致在进行浮点数运算时出现舍入误差和不精确性。而使用 Decimal 类型可以提供更高的精度并避免此类问题
比如:
print(2.3-1.1)
在Python中,使用普通的浮点数进行计算时,结果将是 1.2000000000000002
使用Decimal模块进行精确的十进制运算可以避免浮点数精度问题。
比如:
print(Decimal("2.3")- Decimal("1.1"))
结果将是 1.2
可以传递给Decimal整型或者字符串参数,但不能是浮点数据,因为浮点数据本身就不准确
或者指定返回数据的精度,也可以得到:
print(round(2.3-1.1,2))
结果为1.2