25

Objective-C で float をログアウトする場合、次のようにして、出力を小数点以下 2 桁に制限できます。

float avgTemp = 66.844322156
NSLog (@"average temp. = %.2f", avgTemp);

しかし、Swift でこれを行うにはどうすればよいでしょうか。printlnまた、Swiftで他のキャラクターをどのようにエスケープしますか?

通常の Swiftprintlnステートメントは次のとおりです。

println ("Avg. temp = \(avgTemp)")

では、小数点以下の桁数をどのように制限しますか?

また、二重引用符をどのようにエスケープしますprintlnか?

4

4 に答える 4

28

これまでに見つけた最短の解決策は次のとおりです。

let avgTemp = 66.844322156
println(NSString(format:"%.2f", avgTemp))

NSStringのswiftバージョンのようなものですstringWithFormat

于 2014-06-08T04:27:25.023 に答える
11

文字列としての数値の形式に関するすべては、NSNumberFormatter を使用して調整できます。

let nf = NSNumberFormatter()
nf.numberStyle = NSNumberFormatterStyle.DecimalStyle
nf.maximumFractionDigits = 2
println(nf.stringFromNumber(0.33333)) // prints 0.33

バックスラッシュで引用符をエスケープできます

println("\"God is dead\" -Nietzsche")
于 2014-06-08T04:01:13.353 に答える
8

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
于 2015-05-14T08:26:37.800 に答える
0

特定の精度で浮動小数点数を頻繁に出力する必要がある場合は、便利なメソッドで 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)")
于 2015-11-11T16:30:23.903 に答える