Как конвертировать NSString в плавающее без его округления? - PullRequest
0 голосов
/ 07 июня 2019

Я пробовал следующее, но когда я конвертирую строку, она автоматически округляется.

let str = "10,60"
let str2 = (str as NSString).floatValue //prints "10.0"

//What I would like to do
let str2 = (str as NSSTring).floatValueNotRounded //prints "10,60"

1 Ответ

1 голос
/ 07 июня 2019

.floatValue не обрабатывает локальные форматы, и ваш номер использует запятую в качестве десятичной точки - анализ просто останавливается на запятой, и вы получаете 10. Используйте либо NumberFormatter, либо Scanner для анализа локализованных номеров. E.g.:

let formatter = NumberFormatter()
let val = formatter.number(from: str)

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

...