2017-08-17 90 views
0

我有很多類似「9904962」的字符串&「57053717」我需要將它們轉換爲CLLocationDegrees以用於創建CLLocation對象。將不帶分隔符的字符串轉換爲Double/CLLocationDegrees

問題是缺少逗號/標點符號。

我所能做的字符計數並設置標點符號這樣的:

var coordinateString = "57053717" 

let offset = coordinateString.characters.count > 7 ? 2 : 1 

coordinateString.insert(".", at: coordinateString.index(coordinateString.startIndex, offsetBy: offset)) 

然後我coordinateString將是「57.053717」或「9.904962」

但我不認爲這是最好的解決方案,這僅涵蓋原始字符串長度大於或小於7個字符的情況。

什麼是更好的解決方案?

+0

的位數小數部分數總是6?如果_no_,則不能用給定的字符串區分'57.053717'和'5.7053717'。 – OOPer

+2

如果他們總是有6位數的精度,只需從你的字符串中創建一個雙精度值併除以100萬 –

+0

快速瀏覽一下數據,看起來它總是6位精度,但座標可能是這麼長的57.05381847826012。然後除以百萬或區分小數部分6個字符將無法正常工作。 – TSkovsgaard

回答

0

Swift3.0

let numberString: NSMutableString = "57053717" // Convert string to MutableString 

let offset = numberString.characters.count > 7 ? 2 : 1 // finding offset value 

numberString.insert(".", at: offset) // insert "." in offset index 
print(numberString) 

let doubled = numberString.doubleValue // convert to double vale 
print(doubled) 

輸出:57.053717

相關問題