分区作为输入参数返回0

时间:2017-02-19 15:41:17

标签: python jython division integer-division jes

所以我试图输入一个除法问题作为参数,当答案是<时,我总是得到0。 1.我知道为什么会这样,但我不知道如何解决这个问题,所以它给出了小数答案。

def division(x): print x 哪里" x"是1/2,代码打印" .5"

我正在使用JES 5.020版。任何指导将不胜感激!

2 个答案:

答案 0 :(得分:0)

使用float()函数。

5/2 = 2
浮子(5)/浮子(2)= 2.5

答案 1 :(得分:0)

首先,没有必要使用一个名为 division 的函数,如果它只是打印输入。

现在到了实际问题。你正在使用python 2.在python 2中,整数除法总是一个整数。所以1/3(应该等于0.33)只是0。

解决方案是将至少一个数字转换为浮点数。这可以通过以下方式完成:

  1. float(1)/3
  2. 1.0/3
  3. 是的,在您当前的设置中,这个分区将在数字传递给您的函数之前发生。所以你的功能完美无缺,它是需要改变的输入。

    编辑:

    如果您无法更改输入并需要支持整数的浮点除法,请使用 future 模块。这为python 2带来了一些python 3特性。

    将此行添加到代码的开头:

    from __future__ import division