Comment convertir un tableau de NSNumber en tableau de chaînes afin d'afficher la valeur dans UITableView?
cell.textlabel.text = ?
Code:
var a = [68.208983, 6.373902, 1.34085, 3.974012, 110.484001,
61.380001, 1.325202, 0.8501030000000001, 0.8501030000000001,
0.8501030000000001, 3.647296, 1.28503]
ajoutez simplement
.stringValue
à votre variable NSNumber
D'après ce que vous avez publié, vous trouverez un tableau de Double
si vous ne les annotez pas explicitement. Si le tableau que vous avez publié est tel qu'il est, vous en avez besoin:
let arrayOfDoubles = [68.208983, 6.373902, 1.34085, 3.974012, 110.484001, 61.380001, 1.325202, 0.8501030000000001, 0.8501030000000001, 0.8501030000000001, 3.647296, 1.28503]
let stringArrayOfDoubles = arrayOfDoubles.map { String($0) }
Ou, si vous annotez explicitement le type comme [NSNumber]
alors vous en aurez besoin:
let arrayOfNumbers: [NSNumber] = [68.208983, 6.373902, 1.34085, 3.974012, 110.484001, 61.380001, 1.325202, 0.8501030000000001, 0.8501030000000001, 0.8501030000000001, 3.647296, 1.28503]
let stringArrayOfNumbers = arrayOfNumbers.map { $0.stringValue }
Convertissez la valeur donnée en chaîne. Si la valeur donnée est nulle, elle renverra une chaîne vide.
class func toString(_ anything: Any?) -> String {
if let any = anything {
if let num = any as? NSNumber {
return num.stringValue
} else if let str = any as? String {
return str
}
}
return ""
}
Il suffit de copier coller cette méthode de convertir en chaîne sans problème de plantage Merci.
Si vous souhaitez afficher des données numériques à l'utilisateur, il est préférable d'utiliser un formateur de nombres. De cette façon, votre sortie s'adaptera au formatage auquel vos utilisateurs sont habitués et s'attendent en fonction de leur environnement local. Il vous permet également de configurer la façon dont les nombres sont présentés (nombre de chiffres de fraction, chiffres significatifs, arrondi, etc.) sans avoir à modifier les nombres. Par exemple, si vous souhaitez formater un nombre sous forme décimale avec deux chiffres de fraction, vous devez configurer le formateur comme ceci:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
En fonction des paramètres régionaux de l'utilisateur, la sortie (mille séparateur, séparateur décimal et même chiffres (!)) Variera:
formatter.locale = Locale(identifier: "en")
formatter.string(from: 12345.6789) // 12,345.68
formatter.string(from: 0.12345) // 0.12
formatter.locale = Locale(identifier: "sv")
formatter.string(from: 12345.6789) // 12 345,68
formatter.string(from: 0.12345) // 0,12
formatter.locale = Locale(identifier: "hi")
formatter.string(from: 12345.6789) // १२,३४५.६८
formatter.string(from: 0.12345) // ०.१२
formatter.locale = Locale(identifier: "ar")
formatter.string(from: 12345.6789) // ١٢٬٣٤٥٫٦٨
formatter.string(from: 0.12345) // ٠٫١٢
D'autres styles de nombres peuvent être utilisés pour formater d'autres types de données numériques comme la devise, le pourcentage ou les nombres ordinaux:
formatter.locale = Locale(identifier: "en")
formatter.numberStyle = .ordinal
formatter.string(from: 1) // 1st
formatter.string(from: 2) // 2nd
formatter.string(from: 3) // 3rd
formatter.string(from: 4) // 4th