Python 有没有办法把整数归类为不带0的整数,把浮点数归类为浮点数?
所以。在我的程序中,我有一个检查除法和的结果是否为整数的部分。例如,Python 有没有办法把整数归类为不带0的整数,把浮点数归类为浮点数?,python,python-3.x,integer,decimal,division,Python,Python 3.x,Integer,Decimal,Division,所以。在我的程序中,我有一个检查除法和的结果是否为整数的部分。例如,6/3=2(真)或7/3=1.66(假)。问题是,当我进行像6/3这样的除法时,应该是整数的结果被归类为浮点,因为它的结果是2.0,而不是2。有没有办法将十进制/浮点答案归类为带小数点的浮点,而将整数答案归类为整数?(末尾没有.0的数字) 我现在有: 6 / 3 = 2.0 (float) 7 / 3 = 1.66 (float) 我想要这个: 6 / 3 = 2 (integer) 7 / 3 = 1.66
6/3=2
(真)或7/3=1.66
(假)。问题是,当我进行像6/3
这样的除法时,应该是整数的结果被归类为浮点,因为它的结果是2.0
,而不是2
。有没有办法将十进制/浮点答案归类为带小数点的浮点,而将整数答案归类为整数?(末尾没有.0的数字)
我现在有:
6 / 3 = 2.0 (float)
7 / 3 = 1.66 (float)
我想要这个:
6 / 3 = 2 (integer)
7 / 3 = 1.66 (float)
就用吧
例如,如OP所示:
>>> num1 = 6 / 3 # 2.0
>>> num1.is_integer()
True
>>> num2 = 7 / 3 # 2.33
>>> num2.is_integer()
False
这里不需要任何复杂的东西,将其实现到函数中应该很容易。7/3*3=7吗
return ((n1 // n2 * n2) == n1)
Python 2还是3?除法在它们中的行为不同。我使用的是Python 3.3。0@DylanJ在这种情况下,您应该接受答案,以便让其他用户知道您的问题已经解决。我也非常感谢您的投票。我不明白您对我的
删除的答案的问题,@alexthonton。我的答案是正确的,它只是有不正确的语法(这是我在深入研究之前修复的)。OP询问如何检测除法的结果何时产生一个没有余数的整数。我认为你呼吁人们将我的答案标记为删除是不必要的。@DylanJ你可以点击计票下面的勾号,将答案标记为接受。一旦您接受,它将变为绿色。这仅在/
为整数除法时有效,而在Python 3中没有。您说得对,@jwodder。在python3中,您必须使用/
。您还需要将表达式封装在parens中,以使其实际工作。我确定了我的答案。我用我手机里糟糕的语法回答。也许我以后会避免这样做。