Convert int to double Python
我似乎在这个网站上找不到答案,尽管这似乎足够普遍。我试图输出两个文件中行数之比的双精度值。
1 2 3 | #Number of lines in each file inputLines = sum(1 for line in open(current_file)) outputLines = sum(1 for line in open(output_file)) |
然后得到比率:
1 | ratio = inputLines/outputLines |
但这个比率似乎总是一个整数和整数,即使我像这样初始化它:
1 | ratio = 1.0 |
谢谢。
在python 2中,两个整数的除法的结果总是一个整数。要强制执行浮点除法,需要在除法中至少使用一个浮点:
注意不要执行
在python 3中,整数除法的行为发生了变化,两个整数的除法产生了一个浮点。您也可以在python 2.7中使用此功能,方法是将
1 2 | a= 1.0 #"a" is a float a= 1 #"a" is now a integer |
您使用的是python 2.x吗?
试用使用
1 2 3 | >>> from __future__ import division >>> ratio = 2/5 0.4 |
从一个部门得到一个
使用
实际上,当您分割一个整数时,python 2返回一个整数。您可以像在Python3中那样重写此行为,其中
1 | from __future__ import division |
或者更好的是,停止使用python 2:)
您需要将其中一个术语强制转换为浮点值。使用
如果使用python 2,可以使用