#swift #string #floating-point #format
#swift #строка #значение с плавающей запятой #форматировать
Вопрос:
Я пытаюсь отформатировать значение с плавающей точкой в строку с заданным количеством цифр. Во всех примерах, которые я видел, используется что-то вроде этого:
let thisString = String(format: "%2.4f" , 3.14159262)
Однако, когда я пытаюсь это сделать, я получаю:
Метки аргументов ‘(format:, _:)’ не соответствуют никаким доступным перегрузкам
. Как будто он даже не распознает «формат» как допустимый способ инициализации строки. Я использую Swift 5 в Xcode 10.2 в Mojave, если это имеет значение. Я упускаю какую-то структуру или что-то в этомроде? Изменился ли инициализатор?
Комментарии:
1. Что не так с
NumberFormatter
?2. не забудьте
import Foundation
Ответ №1:
Ваш код должен работать правильно. Не могли бы вы, пожалуйста, попробовать следующее:
import Foundation
let firstString = String(format: "%2.4f", arguments: [3.14159262])
print(firstString)
let secondString = String(format: "%2.4f", 3.14159262)
print(secondString)
У меня этот код отлично работает на игровой площадке с использованием Swift 5.
Удаление импорта Foundation выдает ту же ошибку, которую вы описали в своем вопросе.
Комментарии:
1. Да, мне не хватало Foundation. Спасибо! Я новичок во всем этом, мне еще не приходилось использовать что-либо из Foundation