std::ostream
所需的输出:
precision = 2
number = 31684.28
result = Decimal(number) - Decimal(10 ** -precision)
print(result)
实际输出:
31684.27
我尝试做的是从 31684.26999999999883584657356
中减去 0.01
。
答案 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')