Python 变量四舍五入

Python 变量四舍五入,python,rounding,Python,Rounding,我有以下代码: x=4200/820 它应该返回x=5.12,但它给出x=5。我怎样才能改变这个。谢谢 编辑: 如果我有以下代码: x=(z-min(z_levels))/(max(z_levels)-min(z_levels)) 其中z、min(z_级别)和max(z_级别)是从列表中获取的for循环中更改的值。 如何使x成为浮点?我是否需要像这样更改代码: x=float(z-min(z_levels))/float(max(z_levels)-min(z_levels)) 使用十进制

我有以下代码:

x=4200/820
它应该返回
x=5.12
,但它给出
x=5
。我怎样才能改变这个。谢谢

编辑: 如果我有以下代码:

x=(z-min(z_levels))/(max(z_levels)-min(z_levels))
其中
z、min(z_级别)和max(z_级别)
是从列表中获取的for循环中更改的值。 如何使
x
成为浮点?我是否需要像这样更改代码:

x=float(z-min(z_levels))/float(max(z_levels)-min(z_levels))

使用十进制使python使用浮点

>>> x=4200/820.
>>> x
5.121951219512195
如果要将x四舍五入到5.12,可以使用
round
功能:

>>> round(x, 2)
5.12

您应该将至少一个变量/值强制转换为float,即。
x=float(4200)/float(820)
或使用小数点表示该值为浮点(
x=4200/820.

或者您可以使用来自未来导入除法的
,然后常规整数除法将返回浮点值

In [1]: from __future__ import division

In [2]: 4200/820
Out[2]: 5.121951219512195
要在此导入之后实现python 2x样式的整数除法(其中结果是一个四舍五入的整数),应使用
/
运算符:

In [22]: 4200//820
Out[22]: 5

在python2.x中,
整数除法
总是导致输出被截断,但如果其中一个操作数更改为
浮点
,则输出也是
浮点

In [40]: 4200/820
Out[40]: 5

In [41]: 4200/820.0
Out[41]: 5.121951219512195

In [42]: 4200/float(820)
Out[42]: 5.121951219512195
在py3x中,这是一种真正的除法(非截断),而
/
用于截断输出

In [43]: from __future__ import division #import py3x's division in py2x

In [44]: 4200/820
Out[44]: 5.121951219512195

其中之一应该是浮动:

In [152]: 4200/820.
Out[152]: 5.121951219512195

你是真的需要小数点后正好两位数字,还是你只是简单地缩写了5.12195。。等相关:我添加了一些信息。谢谢@jpcgandre just
x=float(z-min(z_水平))/(max(z_水平)-min(z_水平))
可以。