在下面的代码中,
abc = (1,2,3)
a = abc[0]
b = abc[1]
c = abc[2]
print('%d, %d, %d' %(a,b,c)) # gives 1,2,3 as expected
a /= 3
b /= 3
c /= 3
print('%d, %d, %d' %(a,b,c)) # gives 0,0,1... which is NOT expected
不过,我正在尝试让 a、b、c
分别为 0.333、0.6666、1
。
这个问题仍然存在,即使我:
- 除以 3.0
- 使用愚蠢的 abc = tuple([i/3.0 for i in abc]) 解决方法,然后尝试再次列出所有元素,如上所示
即使我将所有内容都转换成 float ,如:
a = float(float(a)/float(3.0)) # still returns 0
我什至在使用 python 3,所以无论如何 int/int 除法都应该返回一个 float 。
最佳答案
您的 print
语句要求将值显示为整数 (%d
);尝试使用 %f
代替。
关于python - 来自元组的整数,除以产生整数而不是 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31708244/