は、他の人が論じられるようNSNumberFormatter
を使用し、数字の特定の数に丸め。実際に(というだけで小数点以下の特定の番号を使用して、それを表示するよりも)数字を丸める、あなたがNSDecimalNumber
を使用することができますし
:
let menu = ["Coke": 1.99, "Coffee": 3.99, "Water": 5.99]
let hst = 1.13
let total = NSDecimalNumber(double: menu["Coke"]!)
.decimalNumberByAdding(NSDecimalNumber(double: menu["Coffee"]!))
.decimalNumberByAdding(NSDecimalNumber(double: menu["Water"]!))
.decimalNumberByMultiplyingBy(NSDecimalNumber(double: hst), withBehavior: RoundingBehavior())
let message = "The total for your order is \(total)"
一般的に、ちょうどNSNumberFormatter
を使用することが適切であるが、あなたがつもりならこれらの丸められた数字でさらに計算する(丸められた数字の束を追加するなど)ためには、フォーマッタに頼るのではなく、上に示したように実際に丸めなければなりません。
注、上記RoundingBehavior
小数点以下の桁数が2に丸めるように定義されています
class RoundingBehavior: NSObject, NSDecimalNumberBehaviors {
func roundingMode() -> NSRoundingMode {
return .RoundPlain
}
func scale() -> Int16 {
return 2
}
func exceptionDuringOperation(operation: Selector, error: NSCalculationError, leftOperand: NSDecimalNumber, rightOperand: NSDecimalNumber?) -> NSDecimalNumber? {
return nil
}
}
出典
2016-07-02 18:30:18
Rob
はないラウンド、書式設定 – Sulthan
はい、使用する書式設定を使用していますが、あなた'LL場合は、同様に丸めする必要があるかもしれませんこの数値でさらに算術演算を行う必要があります。 – Rob
@Robお金で算術演算をしているなら、あなたはNSDecimalNumberを使うべきです。 – Sulthan