2016-11-15 5 views
-2

Jsonデータを取得しているTableViewの中で何らかのプログラミングをしています。戻ってくる要素の1つがFloat型で、プロパティには、フロートの上に、これは私のコードIOS swift Textプロパティを使用しているときに文字列をfloatに変換するにはどうすればいいですか?

var latitudes = [Float]() 
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCell(withIdentifier: "mycelia", for: indexPath) 
     // This gives error can't convert type String to Float 
    cell.MyLabel.text = latitudes[indexPath.row] 


    return cell 
} 

である私は、スウィフトに新しいですし、そのようなここで説明されているものConvert String to float in Apple's Swiftなどの他の方法を試してみましたが、単なる文字列の初期化子にそれを渡すことが

+2

実際にあなたはそれを後方に持っています。ここで行う必要があるのは、FloatをStringに変換することです。 – matt

答えて

1

を動作させることはできません:

cell.MyLabel.text = String(latitudes[indexPath.row]) 
1

Localeが使用しているデバイスをサポートしたい場合は、NumberFormatterを使用してください。小数点には.を使用するロケールがあり、その他の国(ドイツなど)では,が使用されるため、これは重要です。

だから、あなたは数フォーマッタプロパティを定義できます

let formatter: NumberFormatter = { 
    let _formatter = NumberFormatter() 
    _formatter.maximumFractionDigits = 6 // use however many decimal places you want 
    _formatter.minimumFractionDigits = 6 
    return _formatter 
}() 

は、次に、あなたが行うことができます42.67のような緯度を考慮する際

cell.MyLabel.text = formatter.string(from: NSNumber(value: latitudes[indexPath.row])) 

この方法では、米国のユーザーは、文字列が表示されます42.670000ですが、ドイツ語のユーザーには適切な42,670000文字列が表示されます。

関連する問題