试图获得准确的浮点数。 python 2.7

Trying to get an accurate float point. python 2.7

当我尝试得到一般梯形近似的错误时 (要使用的误差方程是:(1/3)*(I2-I1) 我得到 -0.0。我希望它是浮动的,但它在显示后不会显示小数点后的任何数字。我该如何解决? 这是代码:

error = float((1/3)*(dx*(y[3] +y[2]) - dx* (y[1] + y[0]*0.5)))
print error

其中 y 是值数组

[  1.       0.8001   0.6016   0.4081   0.2256   0.0625  -0.0704  -0.1599
  -0.1904  -0.1439   0.       0.2641   0.6736   1.2561   2.0416   3.0625
   4.3536   5.9521   7.8976  10.2321  13.    ]

y的等式是x**4 - 2*x + 1 x 边界是 0. -> 2.

那是因为方程式中的 1/3 最终成为整数运算,并最终将计算的其余部分转换为整数数学。