ios - Remove Decimal places from Currency? -


i have following example:

// currencies  var price: double = 3.20 println("price: \(price)")  let numberformater = nsnumberformatter() numberformater.locale = locale numberformater.numberstyle = nsnumberformatterstyle.currencystyle numberformater.maximumfractiondigits = 2 

i want have currency output 2 digests. in case currency digests 0 want not displayed. 3,00 should displayed as: 3. other values should displayed 2 digests.

how can that?

you have set numberstyle decimalstyle able set minimumfractiondigits property depending if double or not follow:

extension double {     var formatted: string {         let numberformater = nsnumberformatter()         numberformater.locale = nslocale.currentlocale()         numberformater.numberstyle = nsnumberformatterstyle.decimalstyle         numberformater.maximumfractiondigits = 2         numberformater.minimumfractiondigits = self - double(int(self)) == 0 ? 0 : 2         return numberformater.stringfromnumber(self) ?? ""     } }   3.0.formatted    // "3" 3.12.formatted   // "3.12" 3.20.formatted   // "3.20"  var price = 3.20 println("price: \(price.formatted)") 

edit

extension double {     var currency: string {         let numberformater = nsnumberformatter()         numberformater.locale = nslocale.currentlocale()         numberformater.numberstyle = nsnumberformatterstyle.currencystyle         let result = numberformater.stringfromnumber(self) ?? ""         return result.hassuffix(".00") || result.hassuffix(",00") ? result[result.startindex..<result.endindex.predecessor().predecessor().predecessor()] : result     }  }   3.0.currency    // "$3" 3.12.currency   // "$3.12" 3.2.currency   // "$3.20"  var price = 3.0 println("price: \(price.currency)") 

Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -