Мне нужно создать строку с форматом, который может конвертировать типы int, long, double и т. Д. В строку. Используя Obj-C, я могу сделать это следующим образом.
NSString *str = [NSString stringWithFormat:@"%d , %f, %ld, %@", INT_VALUE, FLOAT_VALUE, DOUBLE_VALUE, STRING_VALUE];
Как сделать то же самое с Swift?
NSString
вFoundation
рамках . Таким образом, вы должныimport Foundation
заставить это работать правильно. В противном случае выражение будет вызыватьсяString.init<T>(T)
, и оно будет производить что-то вроде"(\"%@%x %x\", 10)"
вместо.%@%x
означают символы? Можете ли вы указать мне на ресурс, где я могу узнать больше об этом.ничего особенного
источник
Обновление: я написал этот ответ до того, как Swift
String(format:)
добавил его API. Используйте метод, указанный в верхнем ответе .источник
String(format:arguments:)
было бы более целесообразным, чтобы добавить форматирование-stringWithFormat:
которым позволяет форматирование. В SwiftString(format:arguments:)
будет Swift версия Obj-C-stringWithFormat:
NSString
методы еще не были реализованы в SwiftString
.Не
NSString
требуется!или
источник
Я бы сказал, что оба
и
оба приемлемы, так как пользователь спросил о форматировании, и оба случая соответствуют тому, что они просят:
Очевидно, что первое позволяет лучше контролировать форматирование, чем второе, но это не означает, что последнее не является приемлемым ответом.
источник
источник
Сначала прочтите Официальную документацию по языку Swift.
Ответ должен быть
Вот
1) Любое значение с плавающей точкой по умолчанию
double
-> Если вы хотите отобразить значение с плавающей запятой, то вам нужно явно определить такой как
Это гораздо понятнее.
источник
источник
Я знаю, что с момента этой публикации прошло много времени, но я попал в похожую ситуацию и создал простой класс, чтобы упростить мою жизнь.
По следующей ссылке отправьте полный исходный код: https://gist.github.com/dedeexe/d9a43894081317e7c418b96d1d081b25
Это решение было основано на этой статье: http://vojtastavik.com/2015/03/29/real-time-formatting-in-uitextfield-swift-basics/
источник
Существует простое решение, которое я узнал с помощью «We <3 Swift», если вы не можете импортировать Foundation , использовать round () и / или не хотите String :
результат: 31.726
источник
Используйте этот следующий код:
источник
Успех попробовать это:
источник