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 justx=float(z-min(z_水平))/(max(z_水平)-min(z_水平))
可以。