2014-06-09 22 views
27

Tôi muốn chuyển đổi -33.861382,151.210316,226.76 thành Chuỗi. Tôi đã cố gắng loại bỏ nó nhưng không thành công. Làm thế nào để chuyển đổi giá trị float thành String?Chuyển đổi giá trị float thành Chuỗi trong Swift

+0

bản sao có thể có của [Trình định dạng định dạng chuỗi chính xác trong Swift] (http://stackoverflow.com/questions/24051314/precision-string-format-specifier-in-swift) – trojanfoe

+0

có thể trùng lặp với [Định dạng chuỗi của một đôi] (http://stackoverflow.com/questions/24047374/string-formatting-of-a-double) –

Trả lời

43

Nếu bạn muốn có một số kiểm soát nhiều hơn về cách nó được chuyển đổi bạn có thể sử dụng +stringWithFormat trên NSString hoặc 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 là con đường để đi, bởi vì nó là địa phương nhận thức được. Không phải mọi quốc gia đều sử dụng định dạng 12.345. –

-2

Trực tiếp từ trang 6 của tài liệu tham khảo lập trình nhanh chóng sẵn từ developer.apple.com:

giá trị không bao giờ được ngầm chuyển đổi sang loại khác. Nếu bạn cần chuyển đổi một giá trị thành một kiểu khác, hãy tạo một thể hiện của kiểu mong muốn một cách rõ ràng.

let label = "The width is " 
let width = 94 
let widthLabel = label + String(width) 

Trích: Apple Inc. "Ngôn ngữ lập trình Swift". IBooks. https://itun.es/us/jEUH0.l

HOẶC

Có một cách đơn giản hơn để bao gồm các giá trị trong chuỗi: Viết giá trị trong ngoặc đơn, và viết một dấu gạch chéo() trước dấu ngoặc đơn. Ví dụ:

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

Trích: Apple Inc. "Ngôn ngữ lập trình Swift". IBooks. https://itun.es/us/jEUH0.l

+14

OP yêu cầu Float -> String không Int -> String. Giải pháp đầu tiên bạn đưa ra với 'String (width)' không hoạt động với Float. – Kalzem

24

Sử dụng Xcode 6.3 bạn có thể chuyển đổi một phao thành một chuỗi sử dụng .description

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

hoặc bạn có thể cho nhanh chóng làm điều đó cho bạn sử dụng:

var string = "my float is \(float)" 
3

Trong nhanh chóng 3 nó là đơn giản như đưa ra dưới đây

let stringFloat = String(describing: float) 
1

Dưới đây là ví dụ đơn giản trong Swift 3.0 cho chuyển đổi NSNumber của bạn vào String với số thập phân sử dụng NumberFormatter và nếu bạn muốn biết thêm về định dạng sau đó link here

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

Output:

8.8 

Bất kỳ truy vấn nào theo mã của tôi rồi đặt nhận xét.

Các vấn đề liên quan