我有一个可以具有任意精度的浮点,最小步长表示该数字的最小值可以增加/减少:
num = 3.56891211101
min_step = 0.005
我想要一个函数,它接受这个num
和step_size
,并将num
四舍五入到给定的min_step
。因此,在这种情况下,结果将是3.570
我试图这样做:
num = 3.56891211101
min_step = 0.005
def myround(x, base):
return base * round(x / base)
x = myround(num, min_step)
print(x)
>>> 3.5700000000000003
…很近,但不太近。我希望输出与以下情况相同:
y = 3.570
print(y)
>>> 3.57
实现这一点的简单方法是什么
我使用的是Python 3.8
我用以下方法解决了这个问题:
希望它对其他人有帮助
大多数Python实现(包括CPython参考实现)都使用IEE 754浮点数。因此,它们对于十进制值不准确
规范的方法是使用十进制模块:
如期而至
相关问题 更多 >
编程相关推荐