Swift: строка из float без округления значений

  1. Рекомендуется округлять десятичные знаки, но мне приходится сталкиваться с сценарием, когда мне просто нужно сократить точность.

  2. Выход: от 15,96 до 16,0

  3. Желаемый выход: от 15,96 до 15,9

коды:

var value: AnyObject = dict.valueForKey("XXX")! var stringVal = NSString(format:"%.1f", value.floatValue) 

Я думал, что это будет просто, но сложно найти. Ваши мысли об этом высоко ценятся.

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

 func floorToPlaces(value:Double, places:Int) -> Double { let divisor = pow(10.0, Double(places)) return floor(value * divisor) / divisor } 

Затем вы можете вызвать его с помощью

 var value: AnyObject = dict.valueForKey("XXX")! var rounded = floorToPlaces(value.doubleValue, 1) var stringVal = "\(rounded)" 

На самом деле это было следующим:

 15.96 * 10.0 = 159.6 floor(159.6) = 159.0 159.0 / 10.0 = 15.9 

Предостережение. Это не поможет в ситуациях, когда вы используете научную точность, т.е.

 1.49850e0 --> 1.4e0 // (5 places --> 1 place) 1.39e10 --> 1.3e10 // (3 places --> 1 place) 

Он будет обрабатывать все числа как e0

Используйте NSNumberFormatter и настройте его режим округления соответственно:

 let formatter = NSNumberFormatter() formatter.maximumFractionDigits = 1 formatter.roundingMode = .RoundDown let s = formatter.stringFromNumber(15.96) // Result: s = "15.9" 
  let value: Float = 15.96 let stringVal = "\(value)" print(stringVal) 

результата : 15.96

Попробуйте использовать это:

  var test : AnyObject = "15.96" var rounded_down = floorf(test.floatValue * 10) / 10; print(rounded_down) 
  • Отрицательное число по модулю в быстром
  • Различные ячейки в TableView Swift 3
  • Цифровая панель UITextField: точка вместо запятой для значений с плавающей точкой
  • Смешение Swift и Objective C: Файл ProjectName-Swift.h не найден
  • Изображения, загруженные из URL-адреса, изменяются в прокрутке в UITableView
  • Subview Gesture Recognizer не называется
  • Настройка UINavigationBar глобально?
  • Совместное использование изображения с помощью UIActivityViewController
  • Swift 3: Определение ярлыков var: не удалось
  • CGBitmapContextCreate: неподдерживаемая комбинация параметров. Как передать kCGImageAlphaNoneSkipFirst
  • Swift -Ounchecked and Assertions
  • Interesting Posts
    Давайте будем гением компьютера.