Изучение форматирования чисел в SwiftUI: подробное руководство

В SwiftUI NumberFormatter — это мощный инструмент для форматирования числовых значений в соответствии с языковыми стандартами и предпочтениями пользователя. Если вы хотите отображать валюту, проценты или пользовательские числовые форматы, NumberFormatter предоставляет ряд методов для достижения точного и локализованного форматирования чисел. В этой статье мы рассмотрим несколько методов использования NumberFormatter в SwiftUI, а также примеры кода, которые помогут вам эффективно форматировать числа в вашем приложении iOS.

  1. Основное форматирование чисел.
    Наиболее распространенным вариантом использования является форматирование чисел с десятичными знаками, разделителями и символами, такими как символы валюты. Вот пример форматирования двойного значения для отображения в качестве валюты:
import SwiftUI
struct ContentView: View {
    let price: Double = 1234.56

    var body: some View {
        Text(NumberFormatter.localizedString(from: NSNumber(value: price), number: .currency))
            .font(.title)
    }
}
  1. Пользовательские числовые форматы.
    NumberFormatter позволяет определять собственные числовые форматы с помощью строк формата. Например, вы можете отображать число с определенным количеством десятичных знаков или устанавливать минимальное или максимальное количество целых цифр. Вот пример:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
let number = 1234.5678
let formattedString = formatter.string(from: NSNumber(value: number))
print(formattedString) // Output: "1,234.57"
  1. Процентное форматирование.
    Чтобы отобразить значение в процентах, вы можете использовать числовой стиль percent. Вот пример:
let formatter = NumberFormatter()
formatter.numberStyle = .percent
let decimal = 0.75
let formattedString = formatter.string(from: NSNumber(value: decimal))
print(formattedString) // Output: "75%"
  1. Округление и значащие цифры.
    NumberFormatter предоставляет параметры округления чисел и отображения значащих цифр. Вот пример округления числа до определенного количества десятичных знаков:
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.roundingMode = .halfUp
formatter.maximumFractionDigits = 2
let number = 1234.56123
let formattedString = formatter.string(from: NSNumber(value: number))
print(formattedString) // Output: "1,234.56"
  1. Локализация и стили чисел.
    NumberFormatter автоматически адаптируется к языковому стандарту пользователя, обеспечивая правильный формат чисел в соответствии с региональными настройками. Вот пример, отображающий локализованный короткий номер:
let formatter = NumberFormatter()
formatter.numberStyle = .short
let number = 1234567
let formattedString = formatter.string(from: NSNumber(value: number))
print(formattedString) // Output: "1.23M" (in English locale)

В этой статье мы рассмотрели различные методы форматирования чисел в SwiftUI с использованием класса NumberFormatter. Мы рассмотрели базовое форматирование чисел, пользовательские форматы, процентное форматирование, округление, значащие цифры и локализацию. Используя возможности NumberFormatter, вы можете гарантировать, что числа отображаются точно и единообразно в разных локалях вашего приложения SwiftUI.

Поняв и внедрив эти методы, вы сможете создавать удобные интерфейсы, отвечающие предпочтениям пользователей из разных регионов.

Не забудьте продумать формат чисел, подходящий для вашей целевой аудитории, чтобы обеспечить оптимальное взаимодействие с пользователем и сделать ваше приложение глобально доступным.