2014-06-09 9 views
27

Ich möchte -33.861382,151.210316,226.76 in String konvertieren. Ich habe versucht, es zu tippen, aber war nicht in Ordnung. Wie konvertiert man den Float-Wert in String?Konvertieren Float-Wert in String in

+0

möglich Duplikat von [Precision String Formatspezifizierer In Swift] (http://stackoverflow.com/questions/24051314/precision-string-format-specifier-in-swift) – trojanfoe

+0

möglich Duplikat von [String Formatierung eines Double] (http://stackoverflow.com/questions/24047374/string-formatting-of-a-double) –

Antwort

43

Wenn Sie etwas mehr Kontrolle darüber, wie es umgesetzt ist man entweder +stringWithFormat auf NSString oder NSNumberFormatter

let f = -33.861382 
let s = NSString(format: "%.2f", f) 

let nf = NSNumberFormatter() 
nf.numberStyle = .DecimalStyle 
// Configure the number formatter to your liking 
let s2 = nf.stringFromNumber(f) 
+0

NSNumberFormatter ist der Weg zu gehen, weil es Gebietsschema bewusst ist. Nicht jedes Land verwendet das Format 12.345. –

-2

Direkt ab Seite 6 der schnellen Programmierung Referenz zur Verfügung von developer.apple.com:

Werte werden niemals implizit in einem anderen Typ umgewandelt. Wenn Sie einen Wert in einen anderen Typ konvertieren müssen, erstellen Sie explizit eine Instanz des gewünschten Typs.

Auszug aus: Apple Inc. "Die Swift-Programmiersprache." IBooks. https://itun.es/us/jEUH0.l

ODER

Es gibt eine noch einfachere Art und Weise Werte in Strings enthalten: den Wert in Klammern schreiben, und schreiben Sie einen umgekehrten Schrägstrich() vor den Klammern. Zum Beispiel:

let apples = 3 
let oranges = 5 
let appleSummary = "I have \(apples) apples." 
let fruitSummary = "I have \(apples + oranges) pieces of fruit." 

Auszug aus: Apple Inc. "The Swift Programmiersprache." IBooks. https://itun.es/us/jEUH0.l

+14

OP fragte nach Float -> String nicht Int -> String. Die erste Lösung, die Sie mit "String (width)" angegeben haben, funktioniert nicht mit Float. – Kalzem

24

Mit Xcode 6.3 verwenden, können Sie einen Schwimmer in einen String konvertieren kann mit .beschreibung

var float = -33.861382 
var string = "my float is " + float.description 

oder Sie könnten es schnell für Sie tun mit:

var string = "my float is \(float)" 
als gegeben einfache 10
3

In swift 3 ist es unter

let stringFloat = String(describing: float) 
1

ist hier das einfache Beispiel in Swift 3.0 für Ihre NSNumber in String mit dezimal konvertieren NumberFormatter verwenden und wenn Sie mehr über Formatter wollen wissen, dann link here

let num = NSNumber(8.800000000000001) 
let formatter : NumberFormatter = NumberFormatter() 
formatter.numberStyle = .decimal 
let str = formatter.string(from: num)! 
print(num) 

Ausgang:

8.8 

Jede Abfrage nach meinem Code dann kommentieren.