J'ai beaucoup de chaînes comme "9904962" & "57053717" J'ai besoin de les convertir en CLLocationDegrees pour créer un objet CLLocation.Convertir chaîne sans séparateur en Double/CLLocationDegrees
Le problème est la virgule/marque de ponctuation manquante.
que je pouvais faire le comptage des caractères et définir le signe de ponctuation comme ceci:
var coordinateString = "57053717"
let offset = coordinateString.characters.count > 7 ? 2 : 1
coordinateString.insert(".", at: coordinateString.index(coordinateString.startIndex, offsetBy: offset))
alors mon coordinateString serait « 57,053717 » ou « 9,904962 »
Mais je ne pense pas que ce soit le meilleur solution, cela ne couvre que les cas où la chaîne d'origine est plus longue ou plus courte que 7 caractères.
Quelle est la meilleure solution?
Le nombre de chiffres dans la partie décimale est toujours 6? Si _no_, vous ne pouvez pas distinguer '57.053717' et' 5.7053717' avec la chaîne donnée. – OOPer
si elles ont toujours 6 chiffres de précision, il suffit de créer un double de votre chaîne et de diviser par 1 million –
Un coup d'oeil rapide dans les données, il semble que sa précision est toujours 6 chiffres, mais une coordonnée pourrait être aussi longue 57.05381847826012. Puis diviser par un million ou distinguer la partie fractionnaire de 6 caractères ne fonctionnerait pas. – TSkovsgaard