Спецификатор формата на Double

Я немного поэкспериментировал с String init(format: String, _ arguments: CVarArgType…), и все работало, как и ожидалось, пока я не попытался сделать это:

String(format:"%3f", 32.6)

Который вернулся:

32.600000

Я не понимаю, почему он не соответствует моей желаемой ширине.

Из того, что я знаю о спецификаторах формата (я не знаю их очень глубоко), вы можете указать следующее:

%x.y

Где x — ширина возвращаемого числа (без конечной точки), а y — точность (количество цифр после точки).

Так, например:

String(format: "%3.2", 2.1)

Должен вернуться:

2.10

И если x больше, чем все цифры, он добавляет пробелы к строке.

ОЙ. Хорошо, я только что понял. Я просто отвечу на свой вопрос ????.


person Fantattitude    schedule 06.08.2015    source источник
comment
@rmaddy Спецификаторы формата одинаковы в C и ObjC, поэтому теги мне понравились, хотя мой собственный код — Swift…   -  person Fantattitude    schedule 06.08.2015


Ответы (1)


Кажется, когда вы не указываете свой спецификатор формата с точностью (часть после точки), он будет печатать количество цифр по умолчанию (6 цифр в моем случае).

Ширина, которую я дал моему спецификатору формата, была меньше, чем представление числа с его цифрами (6 цифр с точностью по умолчанию), он просто печатал число со всеми цифрами. Если бы я использовал %10f, он напечатал бы число с добавленными пробелами.

person Fantattitude    schedule 06.08.2015