如何将NSDecimalNumber格式化为Swift字符串?

时间:2017-10-03 22:22:23

标签: ios swift nsdecimalnumber

如果你有这样的代码,那么result将是“2.99”:

let n = 2.99
let result = String(format: "%.2f", n)

但是,如果你有这样的代码:

    let nNS:NSDecimalNumber = 2.99
    let result2 = String(format: "%.2f", nNS)

然后result2为“0.00”。

如何将NSDecimalNumber格式化为这样的字符串?

2 个答案:

答案 0 :(得分:2)

您可以使用NumberFormatterNSNumber转换为字符串。

let priceNS:NSDecimalNumber = 2.99
let nf = NumberFormatter()
nf.maximumFractionDigits = 2
nf.string(from: priceNS) //2.99

答案 1 :(得分:2)

您应该使用NumberFormatter格式化产品价格并使用您的产品区域设置:https://developer.apple.com/documentation/storekit/skproduct/1506094-price

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency 
numberFormatter.locale = someSKProduct.priceLocale
let formattedPrice = numberFormatter.string(from: someSKProduct.price) ?? ""