如何在python中使用精度计算浮点数

时间:2021-01-22 07:04:45

标签: python

std::ostream

所需的输出:

precision = 2
number = 31684.28
result = Decimal(number) - Decimal(10 ** -precision)
print(result)

实际输出:

31684.27

我尝试做的是从 31684.26999999999883584657356 中减去 0.01

4 个答案:

答案 0 :(得分:3)

您应该使用如下格式:

print("{:.2f}".format(result))

或者使用 round 像:

print(round(result, 2))

评论

问题从一开始就不清楚。正确答案(在我看来是@U11-Forward)

答案 1 :(得分:3)

您必须使用 Decimal(...) 而不是输出来生成值。所以试试这个:

from decimal import Decimal
precision = 2
number = 31684.28
result = number - float(10 ** Decimal(-precision))
print(result)

输出:

31684.27

答案 2 :(得分:1)

您可以使用函数round
语法是:round(number, digits)
所以,result = round(number, 2)

您可以在此处阅读更多相关信息:https://www.w3schools.com/python/ref_func_round.asp

答案 3 :(得分:1)

您可以使用quantize十进制library方法

from decimal import Decimal


result = Decimal('31684.26999999999883584657356').quantize(Decimal('0.01'))
# result = Decimal('31684.27')