是否有一个简单的命令格式1.60543e + 06到1,605,436 ???
resultFV.text = String.localizedStringWithFormat("%f",fv)
没有得到它.
JLu*_*ell 33
在Swift 3中,
NumberFormatter.localizedString(from: NSNumber(value: whatever), number: NumberFormatter.Style.decimal)
Run Code Online (Sandbox Code Playgroud)
Mik*_*e D 22
Swift Xcode 6.3,已解决(我决定在代码中保留$).如果您不想在输出中使用$,请将.CurrencyStyle更改为.DecimalStyle
var fv = 3534234.55
var formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.maximumFractionDigits = 0;
resultFV.text = formatter.stringFromNumber(fv) // result: $3,534,235 –
Run Code Online (Sandbox Code Playgroud)
Han*_*nes 19
您应该使用a NumberFormatter:
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
resultFV.text = numberFormatter.string(from: fv)
Run Code Online (Sandbox Code Playgroud)
您可以通过在Swift 3+中使用String初始化器来实现此目的:
// 1605436
let value: Int = 1605436
// "1,605,436" where Locale == en_US
let formattedInt = String(format: "%d", locale: Locale.current, value)
// "1,605,436" where Locale == en_US
let formattedDouble = String(format: "%.0f", locale: Locale.current, Double(value))
Run Code Online (Sandbox Code Playgroud)
更新Swift 4.1货币字符串:
let balance = 1234567
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.maximumFractionDigits = 0
let result = formatter.string(from: NSNumber(value: balance))
// result: $1,234,567
Run Code Online (Sandbox Code Playgroud)
您可以更改formatter.numberStyle为.decimal将其保留为不带"$"符号的数字.
小智 5
Swift 5 更新
var unformattedValue : Double = 3534234.55
var formatter = NumberFormatter()
formatter.numberStyle = .currency // or .decimal if desired
formatter.maximumFractionDigits = 2; //change as desired
formatter.locale = Locale.current // or = Locale(identifier: "de_DE"), more locale identifier codes: https://gist.github.com/jacobbubu/1836273
var displayValue : String = formatter.string(from: NSNumber(value: unformattedValue))! // displayValue: "$3,534,235" ```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18515 次 |
| 最近记录: |