我正在写一个程序,处理浮点数的相互添加,发现了一些奇怪的东西。
例子
---INPUT---
print(1+0.1)
print(1-0.1)
---OUTPUT---
1.10000000000001
0.99999999999999
为什么会发生这种情况,我该如何阻止它?
要做到这一点,而不是使用浮点数,我使用了一个列表,其中每个值的列表代表我需要的浮点数的每个部分。这并不总是最好的解决方案,但对于我需要它的更广泛的应用来说,这是最好的解决方案。
例如
10 1 0.1 0.01
[5, 4, 0, 1]
=> 54.01