2015-05-22 14 views
18

Tôi đang sử dụng SwiftNSNumberFormatter PercentStyle thập phân nơi

let myDouble = 8.5 as Double 

let percentFormatter   = NSNumberFormatter() 
percentFormatter.numberStyle = NSNumberFormatterStyle.PercentStyle 
percentFormatter.multiplier  = 1.00 

let myString = percentFormatter.stringFromNumber(myDouble)! 

println(myString) 

Đầu ra 8% và 8,5% không, làm thế nào tôi sẽ nhận được nó để sản lượng 8,5%? (Nhưng chỉ lên đến 2 chữ số thập phân)

Trả lời

27

Để thiết lập số chữ số thập phân sử dụng:

percentFormatter.minimumFractionDigits = 1 
percentFormatter.maximumFractionDigits = 1 

Set tối thiểu và tối đa yêu cầu của bạn. Nên tự giải thích.

+2

Và cho đến 2 chữ số thập phân, đặt 'percentFormatter.maximumFractionDigits' thành' 2'. '8.5' sẽ hiển thị là' 8,5', nhưng '8,534' sẽ hiển thị là '8,53'. –

4

Với Swift 3, NumberFormatter có một tài sản dụ gọi minimumFractionDigits. minimumFractionDigits có khai báo như sau:

var minimumFractionDigits: Int { get set } 

Số lượng tối thiểu của chữ số sau dấu phân cách thập phân cho phép như là đầu vào và đầu ra của máy thu.


NumberFormatter cũng có một tài sản dụ gọi maximumFractionDigits. maximumFractionDigits có khai báo như sau:

var maximumFractionDigits: Int { get set } 

Số lượng tối đa các chữ số sau dấu phân cách thập phân cho phép như là đầu vào và đầu ra của máy thu.


Mã Sân chơi sau đây cho thấy làm thế nào để sử dụng minimumFractionDigitsmaximumFractionDigits để thiết lập số chữ số sau dấu phân cách thập phân khi sử dụng NumberFormatter:

import Foundation 

let percentFormatter = NumberFormatter() 
percentFormatter.numberStyle = NumberFormatter.Style.percent 
percentFormatter.multiplier = 1 
percentFormatter.minimumFractionDigits = 1 
percentFormatter.maximumFractionDigits = 2 

let myDouble1: Double = 8 
let myString1 = percentFormatter.string(for: myDouble1) 
//let myString1 = percentFormatter.string(from: NSNumber(value: myDouble1)) // also works 
print(String(describing: myString1)) // Optional("8.0%") 

let myDouble2 = 8.5 
let myString2 = percentFormatter.string(for: myDouble2) 
print(String(describing: myString2)) // Optional("8.5%") 

let myDouble3 = 8.5786 
let myString3 = percentFormatter.string(for: myDouble3) 
print(String(describing: myString3)) // Optional("8.58%") 
Các vấn đề liên quan