如何在Python中对包含0的数字进行四舍五入

如何在Python中对包含0的数字进行四舍五入,python,Python,如何将数字四舍五入到小数点后两位,包括 例如,1.599应该向上取整为1.60,而不是1.6您可以使用字符串格式将其设置为%f: >>> '%.2f' % 1.599 '1.60' >>> "{0:.2f}".format(1.599) '1.60' 或者,使用str.format()作为: >>> '%.2f' % 1.599 '1.60' >>> "{0:.2f}".format(1.599) '1.60' 注意

如何将数字四舍五入到小数点后两位,包括
例如,1.599应该向上取整为1.60,而不是1.6

您可以使用字符串格式将其设置为
%f

>>> '%.2f' % 1.599
'1.60'
>>> "{0:.2f}".format(1.599)
'1.60'
或者,使用
str.format()
作为:

>>> '%.2f' % 1.599
'1.60'
>>> "{0:.2f}".format(1.599)
'1.60'

注意:此值将为
str
类型。如果将其键入cast to
float
,则会松开尾随的0s

使用
%
str.format()
将数字转换为字符串,并在过程中格式化:

"%.2f" % 1.599
"{:.2f}".format(1.599)

从这个问题来看,四舍五入是“向上”还是仅仅四舍五入是不明确的。如果第一个是隐含的,那么我们可以做:

import math
x = 1.599
x = math.ceil(x*100)/100
"%.2f" % x

1.60与1.6相同。打印值时是否询问格式问题?只有在将数字转换为字符串时才能采用这种方式进行舍入。@furas:那么
舍入(1.599,2)
呢?@Matthias我知道1.6与1.60相同,但OP询问的是1.60而不是1。6@furas:在这种情况下,“round”是一个错误的词。它是关于“格式化”的。@hakeen:round部分由
“%.2f”%x“
处理。如果您明确要将数据类型保持为
float
,则
round()
是更好的选择,因为
ceil
返回的是ceil值,而不是他特别要求“向上”舍入的舍入值“技术上是的。但作为一个成语,它的意思是“收集在一起”。我不认为OP是在谈论
ceil
,或者他可能是。这是模棱两可的。那么,为什么我的回答应该是否定的,因为我确实回答了他的问题?