Chuyển đến nội dung chính

[iOS][Swift] VND currency formatter




[iOS][Swift] VND currency formatter


static func formatCurrency(_ inputNumber: NSNumber, symbol: String = "VND") -> String {
    let formatter = NumberFormatter(numberStyle: .currency)
    formatter.currencySymbol = symbol
    formatter.currencyGroupingSeparator = ","
    formatter.locale = Locales.vietnam
    formatter.numberStyle = .currency
    formatter.positiveFormat = "#,##0 ¤"
    return formatter.string(from: inputNumber) ?? String(format: "%@%@", AppConstant.Character.space160, symbol)
  }


Đoạn formatter.positiveFormat chính là ép ký tự currencySymbol luôn ở bên phải (vd: 1,000,000 VND) thay vì nó sẽ hiển thị VND 1,000,000 trên một vài thiết bị.

Tham khảo bài viết này để hiểu rõ thêm về NumberFormatter




Nhận xét

Bài đăng phổ biến từ blog này

unicode with python

str = "Quan h\u1ec7 t\u00ecnh d\u1ee5c v\u00e0 t\u1eadp t\u00ecnh d\u1ee5c c\u00f3 th\u1ec3 g\u00e2y \u0111au tim \u1edf m\u1ed9t s\u1ed1 ng\u01b0\u1eddi n\u1ebfu h\u1ecd kh\u00f4ng th\u01b0\u1eddng xuy\u00ean th\u1ef1c hi\u1ec7n hai ho\u1ea1t \u0111\u1ed9ng \u0111\u00f3" hic vo duoc cai chuoi nay ma ko biet lam the nao ca?? print u'\u1ec7' duoc chu "ệ" print len(u'\u1ec7') --> 1 print len(unicode('\u1ec7')) --> 6 vay la convert chuoi thanh unicode the nay moi ky tu lai la 1 ky tu unicode (1Byte) thu cheat the nay xem sao nhi??  code = '\u1ec7' print eval("u'{0}'".format(code)) --> ệ  su dung regular expression ta se print duoc chuoi dau bai ve dang tieng viet bt print re.sub(r"(\\u[a-z0-9]{4})", lambda m: eval("u'{0}'".format(m.group(1))), str) --> Quan hệ tình dục và tập tình dục có thể gây đau tim ở một số người nếu họ không thường xuyên thực hiện hai hoạ...

Lưu ý về vendored_frameworks khi project pod sử dụng nhiều thư viện binary

vendored_frameworks Khi bạn cần đóng framework private source code thì có thể cung cấp cho các dev khác thông qua trực tiếp file .framework hoặc .xcframework hoặc qua pod,... Nếu bạn chỉ muốn đính kèm 1 dynamic framework thì bạn chỉ cần khai báo trong podspec như sau: s.vendored_frameworks = 'Frameworks/MyFramework.xcframework' Khi project thư viện của bạn sử dụng nhiều hơn 1 framework thì sử dụng cú pháp sau  s.vendored_frameworks = ['Frameworks/LV24hCore.xcframework', 'Frameworks/Alamofire.xcframework', 'Frameworks/AlamofireImage.xcframework', 'Frameworks/CryptoSwift.xcframework', 'Frameworks/ObjectMapper.xcframework'] Lưu ý là viết dấu [ trên 1 dòng nhé,  nếu Style xuống dòng trông cho sạch đẹp thì sẽ không ăn nhé. Ví dụ mình viết như này thì test không thấy ăn. s.vendored_frameworks = [ 'Frameworks/LV24hCore.xcframework', 'Frameworks/Alamofire.xcframework', 'Frameworks/AlamofireImage.xcframework', ...