我有如下代码:
pows2nag = np.asarray([ np.power(2.0,x) for x in range(-65,0) ][::-1])
它将产生以下成果:
[ 5.00000000e-01 2.50000000e-01 1.25000000e-01 6.25000000e-02
3.12500000e-02 1.56250000e-02 7.81250000e-03 3.90625000e-03
1.95312500e-03 9.76562500e-04 4.88281250e-04 2.44140625e-04
1.22070312e-04 6.10351562e-05 3.05175781e-05 1.52587891e-05
7.62939453e-06 3.81469727e-06 1.90734863e-06 9.53674316e-07
4.76837158e-07 2.38418579e-07 1.19209290e-07 5.96046448e-08
2.98023224e-08 1.49011612e-08 7.45058060e-09 3.72529030e-09
1.86264515e-09 9.31322575e-10 4.65661287e-10 2.32830644e-10
1.16415322e-10 5.82076609e-11 2.91038305e-11 1.45519152e-11
7.27595761e-12 3.63797881e-12 1.81898940e-12 9.09494702e-13
4.54747351e-13 2.27373675e-13 1.13686838e-13 5.68434189e-14
2.84217094e-14 1.42108547e-14 7.10542736e-15 3.55271368e-15
1.77635684e-15 8.88178420e-16 4.44089210e-16 2.22044605e-16
1.11022302e-16 5.55111512e-17 2.77555756e-17 1.38777878e-17
6.93889390e-18 3.46944695e-18 1.73472348e-18 8.67361738e-19
4.33680869e-19 2.16840434e-19 1.08420217e-19 5.42101086e-20
2.71050543e-20]
我的问题是十进制的精度没有我想要的那么精确。例如,2.44140625
除以2应该等于1.220703125
,但是我得到的是1.22070312
。
如何使numpy.power生成更长的小数?
发布于 2017-09-22 02:02:42
2.44140625/2
确实给了1.220703125
。在控制台中显示的实际值和值之间存在差异。看看这个:
np.pi
Out[992]: 3.141592653589793
np.array([np.pi])
Out[993]: array([ 3.14159265])
np.array([np.pi])[0]
Out[994]: 3.1415926535897931
https://stackoverflow.com/questions/46355678
复制相似问题