如何在Swift中使用println格式化数字
在Objective-C中注销浮点时,您可以执行以下操作,将输出限制在小数点后2位:如何在Swift中使用println格式化数字,swift,println,nsformatter,Swift,Println,Nsformatter,在Objective-C中注销浮点时,您可以执行以下操作,将输出限制在小数点后2位: float avgTemp = 66.844322156 NSLog (@"average temp. = %.2f", avgTemp); 但在斯威夫特你是怎么做到的? 在Swift中如何转义println中的其他字符 下面是一个常规的Swiftprintln声明: println ("Avg. temp = \(avgTemp)") 那么如何限制小数点 另外,如何在println中转义双引号?可以使用N
float avgTemp = 66.844322156
NSLog (@"average temp. = %.2f", avgTemp);
但在斯威夫特你是怎么做到的?
在Swift中如何转义println
中的其他字符
下面是一个常规的Swiftprintln
声明:
println ("Avg. temp = \(avgTemp)")
那么如何限制小数点
另外,如何在
println
中转义双引号?可以使用NSNumberFormatter调整数字作为字符串的格式:
let nf = NSNumberFormatter()
nf.numberStyle = NSNumberFormatterStyle.DecimalStyle
nf.maximumFractionDigits = 2
println(nf.stringFromNumber(0.33333)) // prints 0.33
可以用反斜杠转义引号
println("\"God is dead\" -Nietzsche")
以下是迄今为止我找到的最短解决方案:
let avgTemp = 66.844322156
println(NSString(format:"%.2f", avgTemp))
它类似于NSString的swift版本stringWithFormat
Println()已弃用
var avgTemp=66.844322156
打印(“平均温度=(四舍五入(平均温度*100)/100)”//平均温度=66.84
//或
打印(NSString(格式:“平均温度=%.2f”,avgTemp))//平均温度=66.84
avgTemp=66.846322156
打印(字符串(格式:“平均温度=%.2f”,avgTemp))//平均温度=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)")
可能重复的可能重复与在目标CYeah中使用
%.2f
相比,似乎要做很多工作,我同意。肯定有办法让它更高效,比如扩展,但它仍然很混乱。同意。必须有一种更简单的基本格式字符串方法。由于Swift仍处于测试阶段,可能还没有实现内联字符串格式化程序\()符号直接访问其中任何值的description属性。能够包含其他格式参数会很酷,但至少目前所有这些都必须手动完成。println在2.0中被删除,请使用print代替。您必须在“(round(avgTemp*100)/100)”之前加上斜杠(\)才能使其正常工作。这样:print(“平均温度=\(四舍五入(avgTemp*100)/100)”)
let x = 5.23325
print("The value of x is \(x.sf2)")