私はSwiftを使用しています
let myDouble = 8.5 as Double
let percentFormatter = NSNumberFormatter()
percentFormatter.numberStyle = NSNumberFormatterStyle.PercentStyle
percentFormatter.multiplier = 1.00
let myString = percentFormatter.stringFromNumber(myDouble)!
println(myString)
8.5%ではなく8%を出力します。8.5%を出力するにはどうすればよいですか? (ただし、小数点第2位まで)
小数桁数を設定するには、次を使用します。
percentFormatter.minimumFractionDigits = 1
percentFormatter.maximumFractionDigits = 1
必要に応じて最小値と最大値を設定します。自明である必要があります。
Swift 5の場合、NumberFormatter
には minimumFractionDigits
というインスタンスプロパティがあります。minimumFractionDigits
には次の宣言があります。
var minimumFractionDigits: Int { get set }
レシーバーによって入出力として許可される、小数点以下の最小桁数。
NumberFormatter
には maximumFractionDigits
というインスタンスプロパティもあります。 maximumFractionDigits
には次の宣言があります。
var maximumFractionDigits: Int { get set }
レシーバーが入出力として許可する小数点以下の最大桁数。
次のPlaygroundコードは、minimumFractionDigits
を使用するときに、小数点記号の後の桁数を設定するためにmaximumFractionDigits
および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)
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%")
疑問がある場合は、Appleのドキュメントで 最小小数桁数 と 最大小数桁数 を確認してください)これで、前に追加する必要があるこれらの行が得られます番号のフォーマット:
numberFormatter.minimumFractionDigits = 1
numberFormatter.maximumFractionDigits = 2
また、 8.5%を得るには入力が0.085である必要があります にも注意してください。これは multiplierプロパティにより発生 で、パーセントスタイルはデフォルトで100に設定されています。