Swift词典包含一个双重,保存了添加小数位置的用户默认值



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上过于积极地使用,我有时已经注意到了这一点。但是在这种情况下,是的!这个"重复的问题"似乎确实谈到了这个问题。谢谢。

这是一个圆形错误。

我建议您将双重转换为字符串或围绕值。您可以看到许多解决方案。

最新更新