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

posted @ 2023-08-11 17:46  搬砖在路上  阅读(69)  评论(0编辑  收藏  举报