Ответ 1
Здесь кратчайшее решение, которое я нашел до сих пор:
let avgTemp = 66.844322156
println(NSString(format:"%.2f", avgTemp))
Это похоже на быструю версию NSString stringWithFormat
При выгрузке поплавка в Objective-C вы можете сделать следующее, чтобы ограничить вывод только двумя десятичными знаками:
float avgTemp = 66.844322156
NSLog (@"average temp. = %.2f", avgTemp);
Но как вы это делаете в Swift?
И как вы избегаете других символов в println
в Swift?
Вот регулярный оператор Swift println
:
println ("Avg. temp = \(avgTemp)")
Итак, как вы ограничиваете десятичные знаки?
Также, как вы избегаете двойных кавычек в println
?
Здесь кратчайшее решение, которое я нашел до сих пор:
let avgTemp = 66.844322156
println(NSString(format:"%.2f", avgTemp))
Это похоже на быструю версию NSString stringWithFormat
Все о формате числа в виде строки можно настроить с помощью NSNumberFormatter:
let nf = NSNumberFormatter()
nf.numberStyle = NSNumberFormatterStyle.DecimalStyle
nf.maximumFractionDigits = 2
println(nf.stringFromNumber(0.33333)) // prints 0.33
Вы можете избежать кавычек с помощью обратного слэша
println("\"God is dead\" -Nietzsche")
Println() устарел.
var avgTemp = 66.844322156
print("average temp. = (round(avgTemp*100)/100)") // average temp. = 66.84
//or
print(NSString(format:"average temp. = %.2f", avgTemp))) // average temp. = 66.84
avgTemp = 66.846322156
print(String(format:"average temp. = %.2f", avgTemp)) // average temp. = 66.85
Если вам нужно печатать числа с плавающей запятой часто с определенной точностью, вы можете расширить Float и Double с помощью удобных методов. Например, для 2-х значащих цифр:
// get Float or Double with 2 significant figure precision
var numberFormatter = NSNumberFormatter()
extension Float {
var sf2:String {
get {
numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
numberFormatter.maximumSignificantDigits = 2
return numberFormatter.stringFromNumber(self)!
}
}
}
extension Double {
var sf2:String {
get {
numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
numberFormatter.maximumSignificantDigits = 2
return numberFormatter.stringFromNumber(self)!
}
}
}
Затем, когда вам нужно печатать вещи:
let x = 5.23325
print("The value of x is \(x.sf2)")