SJA*_*SJA 0 python floating-point variable-assignment
我对将浮点数组成员复制到另一个变量时看到的某些行为感到困惑 - 请帮忙!
例如
data_entry[1] = 9.6850069951
new_value = data_entry[1]
<comment> #print both
9.6850069951
9.6850663300
Run Code Online (Sandbox Code Playgroud)
我知道浮点数的二进制存储问题,但我认为使用内存的直接副本我们最终会得到相同的值。
有任何想法吗?我需要比这更好的精度!提前致谢 斯图尔特
在赋值之后,变量 new_value 不是浮点数的副本,它只是对完全相同对象的另一个引用。因此它不可能有不同的印刷表示。因此,原始问题中肯定省略了一些细节。
Stuart - 您能否尝试以下操作并发布结果,或者告诉我们您的实际代码有何不同。注意下面的 new_value是data_entry[1],即它们都是同一个对象。
>> data_entry = [0,0]
>> data_entry[1] = 9.6850069951
>> new_value = data_entry[1]
>> new_value is data_entry[1]
True
>> print data_entry[1], new_value
9.6850069951 9.6850069951
Run Code Online (Sandbox Code Playgroud)