0
我創建了一個名爲testArray的數組。然後我將它保存爲用戶默認值。並從用戶默認值中檢索它。當我記錄原始「testArray」並記錄檢索到的「retrieveArray」時,經度和緯度字段已經改變。Swift數組字典包含一個double,保存到用戶的默認值添加小數位
例如:
testArray: 「東經」:31.132013199999999
retrievedArray: 「東經」: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]
UPDATE:有人說,「重複問題」是用來在計算器上過於激進,而且我注意到,在倍。但在這種情況下,是的!這個「重複問題」確實似乎說明了這個問題。謝謝。
謝謝Macabeus。舍入是如何進入圖片的?在您提供的「where」鏈接的示例中,它們都明確包含對四捨五入的直接引用。在我發佈的代碼中,沒有調用舍入函數或屬性。你是說四捨五入是自動完成的嗎?令人困惑的是,如果這是一個四捨五入的錯誤,它發生在我聲明的字面值上,然後輸出到控制檯而沒有四捨五入。謝謝! –