我想在Python中创建一个这样的列表:
[0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.]
但是当我使用这种方法时:
z = [x * 0.1 for x in range(0, 11)]
我得到了这个输出:
[0.0, 0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6000000000000001, 0.7000000000000001, 0.8, 0.9, 1.0]
如何在没有这些错误的情况下创建所需的列表?
答案 0 :(得分:0)
这些错误是二进制浮点数的生命现实。您可以强制Python使用decimal模块的十进制算术:
import decimal
z = [decimal.Decimal(i) / decimal.Decimal(10) for i in range(0, 11)]