i创建一个名为TestArray的数组。然后,我将其保存到用户默认值中。并从用户默认值中检索它。当我记录原始的" testarray"并记录检索的"检索"时,经度和纬度字段已更改。
例如:
testarray:"经度":31.132013199999999
检索阵列:"经度":31.1320132
为什么?仍然是陌生人 - 为什么检索到的数组记录正确,但是原始数组正在以额外的十进制位置记录?
谢谢。
let testarray =
Array(
arrayLiteral:
["longitude":31.1320132],
["longitude":31.1320132],
["longitude":31.1320132],
["longitude":31.1320132])
UserDefaults.standard.set(testarray, forKey: "myTestArray")
let retrievedArray = UserDefaults.standard.value(forKey:"myTestArray")
NSLog((testarray as! Array<Dictionary<String,Any>>)[2].description)
NSLog((retrievedArray as! Array<Dictionary<String,Any>>)[2].description)
输出
app[75897:9783167] ["longitude": 31.132013199999999]
app[75897:9783167] ["longitude": 31.1320132]
更新:有些人说"重复的问题"在stackoverflow上过于积极地使用,我有时已经注意到了这一点。但是在这种情况下,是的!这个"重复的问题"似乎确实谈到了这个问题。谢谢。
这是一个圆形错误。
我建议您将双重转换为字符串或围绕值。您可以看到许多解决方案。