2024-05-20 22:58:21 发布
网友
python 2.6文档声明x % y被定义为x/y(http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex)的剩余部分。我不清楚到底发生了什么,因为:
x % y
for i in range(2, 11): print 1.0 % i
打印“1.0”十次,而不是像我预期的那样打印“0.5,0.333333,0.25”等(1/2=0.5等)。
你把division和modulus搞混了。
“0.5,0.333333,0.25”等,如我所料(1/2=0.5等)
这是除法的结果。
不模量。
模(%)是整数除法后的余数。
%
示例值是简单的除法,即/运算符。不是%运算符。
/
我想你可以通过这样做得到你想要的结果:
for i in range(2, 11): print 1.0*(1 % i) / i
这将计算其他人解释的(整数)余数。然后再除以分母,得到商的小数部分。
请注意,我将模运算的结果乘以1.0,以确保执行浮点除法运算(而不是整数除法,这将导致0)。
模是在整数上下文中执行的,而不是小数(余数是整数)。因此:
1 % 1 = 0 (1 times 1 plus 0) 1 % 2 = 1 (2 times 0 plus 1) 1 % 3 = 1 (3 times 0 plus 1) 6 % 3 = 0 (3 times 2 plus 0) 7 % 3 = 1 (3 times 2 plus 1) 8 % 3 = 2 (3 times 2 plus 2) etc
How do I get the actual remainder of x / y?
我想你的意思是做一个常规的浮点除法?
for i in range(2, 11): print 1.0 / i
你把division和modulus搞混了。
“0.5,0.333333,0.25”等,如我所料(1/2=0.5等)
这是除法的结果。
不模量。
模(
%
)是整数除法后的余数。示例值是简单的除法,即
/
运算符。不是%
运算符。我想你可以通过这样做得到你想要的结果:
这将计算其他人解释的(整数)余数。然后再除以分母,得到商的小数部分。
请注意,我将模运算的结果乘以1.0,以确保执行浮点除法运算(而不是整数除法,这将导致0)。
模是在整数上下文中执行的,而不是小数(余数是整数)。因此:
我想你的意思是做一个常规的浮点除法?
相关问题 更多 >
编程相关推荐