precision = 2
number = 31684.28
result = Decimal(number) - Decimal(10 ** -precision)
print(result)
期望的输出:
31684.27
实际输出:
31684.26999999999883584657356
我想要做的是从number
中减去0.01
。
precision = 2
number = 31684.28
result = Decimal(number) - Decimal(10 ** -precision)
print(result)
期望的输出:
31684.27
实际输出:
31684.26999999999883584657356
我想要做的是从number
中减去0.01
。
您应该使用以下格式:
print("{:.2f}".format(result))
或者使用round
函数,如下所示:
print(round(result, 2))
一开始的问题不够清晰。在我看来,正确答案是 @U11-Forward 提供的。
Decimal
,这应该可以解决这个问题。问题出在10 ** -price_precision
上。 - Olvin RoghtDecimal(...)
来表示值,而不是输出。请尝试以下代码:from decimal import Decimal
precision = 2
number = 31684.28
result = number - float(10 ** Decimal(-precision))
print(result)
输出:
31684.27
from decimal import Decimal
result = Decimal('31684.26999999999883584657356').quantize(Decimal('0.01'))
# result = Decimal('31684.27')
round
round(number, digits)
result = round(number, 2)
你可以在这里阅读更多信息:https://www.w3schools.com/python/ref_func_round.asp