我正在使用以下代码将字符串转换为美国货币。但是,我不知道如何禁用四舍五入。
例如,如果字符串值为“0.000012”,代码会将其转换为“$0.00”。
我正在使用的扩展来自这个 SO answer :
我的使用方式:
print(Formatter.currency.locale) // "en_US (current)\n"
print(priceUsdInt.currency) // "$1.99\n"
最佳答案
要控制舍入(在这种情况下接受点后的 6 位数字)将 formatter.maximumFractionDigits = 6;
添加到您的 Formatter
扩展
extension Formatter {
static let currency = NumberFormatter(style: .currency)
static let currencyUS: NumberFormatter = {
let formatter = NumberFormatter(style: .currency)
formatter.locale = Locale(identifier: "en_US")
formatter.maximumFractionDigits = 6;
return formatter
}()
static let currencyBR: NumberFormatter = {
let formatter = NumberFormatter(style: .currency)
formatter.locale = Locale(identifier: "pt_BR")
formatter.maximumFractionDigits = 6;
return formatter
}()
}
关于ios - 如何在不四舍五入的情况下将字符串转换为货币?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46909909/