2015-03-31 3 views
0

Вопрос, который у меня есть, заключается в том, как заставить мои «рассчитанные» и «расчетные» переменные отображать их результаты только в два десятичных знака?Swift: Как ограничить десятичные точки в поплавках?

@IBOutlet weak var calculateLabel: UILabel! 

@IBOutlet weak var calculateTotalLabel: UILabel! 

@IBAction func calculateButton(sender: UIButton) { 



    var calculated = correctNumber/(correctNumber + incorrectNumber) * 100 
    calculateLabel.text = ("\(calculated)% without cues.") 



    var calculatedTotal = correctNumber/(correctNumber + incorrectNumber + verbalNumber + visualNumber + tactileNumber) * 100 
      calculateTotalLabel.text = "\(calculatedTotal)% without cues." 


} 
+0

http://stackoverflow.com/a/24102844 –

ответ

2

Вы можете использовать C-подобный формат спецификатор в Swift следующим образом:

println(String(format: "%.2f", myFloat)) 

Или

calculatedTotal.text = String(format: "%.2f", myFloat) 
+0

Как бы осуществить это в моем текущем коде? – user3316299

2

При форматировании номера для конечного пользователя, я бы рекомендовал использовать NSNumberFormatter, который чтит текущий ток NSLocale. Например, для форматирования этих чисел до двух знаков после запятой, вы могли бы сделать что-то вроде:

@IBAction func calculateButton(sender: UIButton) { 
    let formatter = NSNumberFormatter() 
    formatter.minimumFractionDigits = 2 
    formatter.maximumFractionDigits = 2 

    let calculated = correctNumber/(correctNumber + incorrectNumber) * 100.0 
    calculateLabel.text = ("\(formatter.stringFromNumber(calculated)!)% without cues.") 

    let calculatedTotal = correctNumber/(correctNumber + incorrectNumber + verbalNumber + visualNumber + tactileNumber) * 100.0 
    calculateTotalLabel.text = "\(formatter.stringFromNumber(calculatedTotal)!)% without cues." 
} 
+0

Результаты сохраняются: необязательно («123»)% без реплик. – user3316299

+0

@ user3316299 Всякий раз, когда вы получаете такой вариант, вам просто нужно развернуть его, как в моем пересмотренном ответе. Просто добавьте '!' (Если вы знаете, что это не будет 'nil'), как показано выше. Если вы не уверены, что это будет «nil» или нет, тогда обычно можно выполнить необязательную привязку (см. Раздел необязательного связывания в [Язык программирования Swift] (https://developer.apple.com/library/ios /documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309)). Кстати, я предполагаю, что вы видите десятичное место в ответе. – Rob

+0

Спасибо, что было очень полезно! – user3316299

Смежные вопросы