Есть ли простая команда для форматирования 1.60543e + 06 до 1,605,436 ???Быстрое форматирование большого количества с тысячами сепараторов?
resultFV.text = String.localizedStringWithFormat ("% F", бс)
не получает его.
Есть ли простая команда для форматирования 1.60543e + 06 до 1,605,436 ???Быстрое форматирование большого количества с тысячами сепараторов?
resultFV.text = String.localizedStringWithFormat ("% F", бс)
не получает его.
Swift Xcode 6.3, SOLVED (я решил оставить $ в коде). Если вы не хотите $ на выходе, изменение .CurrencyStyle к .DecimalStyle
var fv = 3534234.55
var formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.maximumFractionDigits = 0;
resultFV.text = formatter.stringFromNumber(fv) // result: $3,534,235 –
Почему вы не ограничивают точность, как ".0f"
resultFV.text = String.localizedStringWithFormat("%.0f", fv)
Обновлено Ответ:
var formatter: NSNumberFormatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle;
var formattedStr: NSString = formatter.stringFromNumber(NSNumber(double: fv))!
resultFV.text = formattedStr
приятно, но мне нужны запятые для тысяч разделителей, например 1,123,456 –
см. Обновленный ответ, надеюсь, что сработает – arthankamal
ok см. Мое исправление выше ??? Как я могу форматировать код, похожий на код, как у вас? спасибо –
Вы должны использовать NSNumberFormatter для этого:
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = .DecimalStyle
resultFV.text = numberFormatter.stringFromNumber(fv)
В Swift 3
NumberFormatter.localizedString(from: NSNumber(value: whatever), number: NumberFormatter.Style.decimal)
Вы заслуживаете большего кредита, чем вы получили за это. Я пытался найти этот простой ответ в течение долгого времени, и никто, казалось, не имел его, пока я не нашел это. – SomeGuy
Вы можете добиться этого с помощью строковых инициализаторами в Swift 3.
// 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))
, если ваш номер подходит для 'float', он даже не удален! –