Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何';打印';Ironpython(Python.net)中除法的结果是什么?_Python_Printing_Random_Ironpython_Division - Fatal编程技术网

如何';打印';Ironpython(Python.net)中除法的结果是什么?

如何';打印';Ironpython(Python.net)中除法的结果是什么?,python,printing,random,ironpython,division,Python,Printing,Random,Ironpython,Division,我需要打印“x/y”的结果,但它总是返回“0”。当我打印“x”时,它告诉我正确,当我打印“y”时,它告诉我正确,但当我打印“x/y”时,它说0 这是我的密码: import random y = 0 x = 0 p = 1 while True: i = [random.randint(1,100), random.randint(1,100), random.randint(1,100), random.randint(1,100), random.randint(1,1

我需要打印“x/y”的结果,但它总是返回“0”。当我打印“x”时,它告诉我正确,当我打印“y”时,它告诉我正确,但当我打印“x/y”时,它说0

这是我的密码:

import random

y = 0
x = 0

p = 1
while True:    

    i = [random.randint(1,100), random.randint(1,100), random.randint(1,100), random.randint(1,100), random.randint(1,100)]

    if len(set(i)) < len(i):
        print "Match!"
        x += 1
        y += 1
        print(x/y)  
    else:
        print "No Match!"
        y += 1
        print y
随机导入
y=0
x=0
p=1
尽管如此:
i=[random.randint(1100),random.randint(1100),random.randint(1100),random.randint(1100),random.randint(1100)]
如果len(set(i))
就像我说的,它在应该打印时打印
y
很好,但是在需要打印
x/y
的事件中,它打印
0
。我也试过打印
x/y
和打印
x//y
,但它们都不起作用

我做错了什么


提前感谢

如果x和y都是整数,Python总是进行整数除法。因此,如果结果是0.something,Python将显示0

如果要进行浮点除法,需要将其转换为浮点:

print float(x) / float(y)
Decimal
对象:

from decimal import Decimal
print Decimal(x) / Decimal(y)
尝试:

整数除法总是截断小数

还要注意的是,实际上只有分子需要是一个浮点数,但最好明确说明你在做什么。

这样做

from __future__ import division
读这个


我认为指出政治公众人物中与此最相关的部分可能是有用的:

正确的解决方法是微妙的:如果可能是复数,则将参数强制转换为float()是错误的;如果参数为负0,则将0.0添加到参数不会保留该参数的符号。唯一没有任何缺点的解决方案是将一个参数(通常是第一个)乘以1.0。这使得float和complex的值和符号保持不变,并将int和long转换为具有相应值的float

因此,您可以:

print 1.0 * x / y

x
?如果是这样,
x/y
必须为零。是的,
x
总是小于
y
,但我甚至尝试了
x//y
,如果我读得正确,它将返回十进制值而不是整数值,但返回0的值也
x//y
返回整数值。你在哪里读到它返回一个十进制值?那是完全错误的。你读过除法吗?我读过除法,它说的是真除法和其他除法,默认情况下,
/
是整数除法,但
/
是十进制除法或其他除法。。。也许我误解了,我很确定只要你把分母转换成一个浮点数,就足以得到你想要的结果。例如浮动(x)/浮动(y)=x/浮动(y)
print 1.0 * x / y