【发布时间】:2014-02-04 15:15:18
【问题描述】:
-
我有 K 个浮点数列表,来自之前的一些计算,例如:
K = numpy.arange(0.01, 0.3, 0.01) K = [0.01, .... 0.28999999999999998, 0.29999999999999999] -
现在,让我们将这些数字四舍五入到小数点后第二位:
K_rounded_2 = [ round(kk, 2) for kk in K ]给:
>>> K_rounded_2 [0.01, 0.02, 0.029999999999999999, 0.040000000000000001, 0.050000000000000003, 0.059999999999999998, 0.070000000000000007, 0.080000000000000002, 0.089999999999999997, 0.10000000000000001, 0.11, 0.12, 0.13, 0.14000000000000001, 0.14999999999999999, 0.16, 0.17000000000000001, 0.17999999999999999, 0.19, 0.20000000000000001, 0.20999999999999999, 0.22, 0.23000000000000001, 0.23999999999999999, 0.25, 0.26000000000000001, 0.27000000000000002, 0.28000000000000003, 0.28999999999999998, 0.29999999999999999]
现在,如果我要手动输入 K 作为列表,只需编写每个元素:
K = [ enter value 1, enter value 2, ...]
然后做:
K_rounded_2 = [ round(kk, 2) for kk in K ]
那么结果如预期:
>>> K_rounded_2
[0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18, 0.19, 0.2, 0.21, 0.22, 0.23, 0.24, 0.25, 0.26, 0.27, 0.28, 0.29, 0.3]
那么在某些计算提供的列表和简单输入的列表之间有不同的处理方式吗?为什么 ?
【问题讨论】:
-
如果不查看您之前的计算,就无法重现此情况。您可以编辑您的问题以包括这些吗?也包括实际的舍入代码。
-
@Wolf:我认为如何获得这些值并不重要。我猜问题出在其他地方。
-
@TimPietzcker 我同意
标签: python numpy python-3.3 rounding