Python和Floats

fra*_*996 -1 python floating-point integer

我有这个代码:

N = 10
for i in range(1,N):
    P[i,i] = (i/N) + pow((1-i/N),2)
Run Code Online (Sandbox Code Playgroud)

但我的除法运算正在向下舍入到最接近的整数.

如何指示Python进行浮点除法?

ret*_*ile 5

你正在进行整数除法.尝试这样的事情:

N = 10
for i in range(1,N):
    P[i,i] = (float(i)/N) + pow((1-float(i)/N),2)
Run Code Online (Sandbox Code Playgroud)


Eri*_*son 5

将此行添加到脚本的顶部:

from __future__ import division
Run Code Online (Sandbox Code Playgroud)

这将允许整数除法给浮点数与通常的除法运算符/.如果您还需要执行整数除法,您可以使用//:

>>> 9/10 
0.90000000000000002
>>> 9//10
0
Run Code Online (Sandbox Code Playgroud)

这将是Python 3中的标准行为.