ios - 如何在不四舍五入的情况下将字符串转换为货币?

标签 ios swift number-formatting currency-formatting

我正在使用以下代码将字符串转换为美国货币。但是,我不知道如何禁用四舍五入。

例如,如果字符串值为“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/

相关文章:

objective-c - MKPinAnnotationView 自定义图像替换为具有动画效果的图钉

jquery - 使用 jquery mobile 和 html5 的标签栏 iOS 应用程序

ios - Firebase 嵌套解析 Swift

php - substr 以逗号生效

c# - Json.NET 中的数字格式 "R"

java - 文件存入十六进制表

ios - 通过 Google 或 Facebook 登录不返回应用程序

ios - 防止删除企业 iOS 应用程序

swift - 如何在 api 请求失败时使用 swift alamofire 中的 responsedecodable 解析错误

ios - Swift - 获取移动数据当前使用情况图