当我尝试使用radius
的值作为字典中的键时,出现错误信息KeyError: 0.73780000000000001
(这是当前半径的值...请参阅下文): 代码看起来在某种程度上是这样的:python中浮点数的位数问题
for n in range(len(myarray)):
radius = (np.sqrt(x[n]**2 + y[n]**2))
的x
和y
值是带有4位小数例如像花车:
-25.9166 71.0444
我试图削减了小数的:
for n in range(len(myarray)):
radius = (int(np.sqrt(x[n]**2 + y[n]**2))*10000)/10000.0
我不明白为什么它给我回个奇怪的值0.73780000000000001
由于累积舍入误差,锁定浮点数不是一个好主意。请参阅[每位计算机科学家有关浮点运算的知识](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)。 –
谢谢,但我不是计算机科学家,我只用python进行数据分析。你知道我怎么能解决这个问题? – user3041107
你能否给我们更多关于你想要达到的内容的背景,以及你维护一个半径上的字典的目的是什么?可能有更好的方法来解决你的问题。 –