python支持double_将int转换为double Python

Python (3) 2024-05-16 15:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说python支持double_将int转换为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))

然后得到比率:

1ratio = inputLines/outputLines

但这个比率似乎总是一个整数和整数,即使我像这样初始化它:

1ratio = 1.0

谢谢。

在python 2中,两个整数的除法的结果总是一个整数。要强制执行浮点除法,需要在除法中至少使用一个浮点:

ratio = float(inputLines)/outputLines

注意不要执行ratio = float(inputLines/outputLines):虽然这会导致一个浮点,但它是在执行整数除法之后获得的,因此结果将是"错误的"(如"不是您所期望的")。

在python 3中,整数除法的行为发生了变化,两个整数的除法产生了一个浮点。您也可以在python 2.7中使用此功能,方法是将from __future__ import division放在乞讨文件中。

ratio = 1.0不起作用的原因是类型(在python中)是值的属性,而不是变量——换句话说,变量没有类型。

1

2a= 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

从一个部门得到一个float。

使用ratio = 1.0初始化不起作用,因为使用ratio = inputLines/outputLines时,无论以前是什么,都会将变量赋给int。

实际上,当您分割一个整数时,python 2返回一个整数。您可以像在Python3中那样重写此行为,其中int / int = float通过将其放在文件的顶部:

1from __future__ import division

或者更好的是,停止使用python 2:)

您需要将其中一个术语强制转换为浮点值。使用float(即ratio = float(a)/b)或ratio=a/float(b))或隐式添加0.0:ratio = (a+0.0)/b。

如果使用python 2,可以使用from __future__ import division使除法不是整数除法,而是浮点除法。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复