所以我需要在输出中删除一些小数的情况。
我有以下一行:
print ("O valor a pagar é de ", ***float(n3)*1.3***, " euros.")
在我高调的领域,我遇到了很多情况......输出就是这样的例子:2,47893698236923
我希望它只显示2个小数的情况,例如:2,47
。< / p>
我该怎么办?我正在使用python 3.5.0
答案 0 :(得分:2)
正如BlivetWidget所指出的,浮动格式会导致舍入而不是截断。
您可以使用十进制模块:
from decimal import Decimal, ROUND_DOWN
x = 2.47893698236923
print(Decimal(str(x)).quantize(Decimal('.01'), rounding=ROUND_DOWN))
print(Decimal(str(x)).quantize(Decimal('.001'), rounding=ROUND_DOWN))
输出:
2.47
2.478
EDIT 正如Python docs所解释的那样:
quantize()方法将数字四舍五入为固定指数。这种方法 对于通常将结果舍入到a的货币应用程序非常有用 固定数量的地方
编辑2
答案 1 :(得分:-1)
使用A2
功能。
round()
答案 2 :(得分:-1)
根据您提供的示例,您希望截断一个值(此时的其他答案将围绕该值)。如果你只想截断,我会使用一个字符串切片。
>>> num = 2.47893698236923
>>> str(num)[:str(num).find('.') + 3]
'2.47'
PS:如果你不知道那里是否会有小数,你可以使用这个变体:
>>> numstr = str(num)
>>> numstr[:(numstr.find('.') + 3) if numstr.find('.') else None]
'2.47'