Ever want to show a price number nicely like "21.58" instead of "21.58223" after applying tax or discount?

We can turn 21.58223 to 21.58 by rounding up or down using NumberFormatter class as below :

```
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
// minimum decimal digit, eg: to display 2 as 2.00
formatter.minimumFractionDigits = 2
// maximum decimal digit, eg: to display 2.5021 as 2.50
formatter.maximumFractionDigits = 2
// round up 21.586 to 21.59. But doesn't round up 21.582, making it 21.58
formatter.roundingMode = .halfUp
let price = 21.58223
let roundedPriceString = formatter.string(for: price)
// output "rounded price is 21.58"
print("rounded price is \(roundedPriceString!)")
```

We will first create a NumberFormatter instance and configure its options as shown above.

Then we will convert the original number into rounded output string using **.string(for: )** method, this will convert the input number into a string using the format options specified.

You can configure the **.roundingMode** to `.up`

, `.down`

, `.halfUp`

and etc .

`.up`

will add 1 to the maximum decimal digits if it has any decimal after the maxmium decimal digits, eg: 2.120001 to 2.13

`.down`

will ignore and cut off the decimals after the maximum decimal digits, eg: 2.12999 to 2.12

`.halfUp`

will add 1 to the maximum decimal digits if the decimals after the maximum decimal digits is more than half of the value. eg: 21.5864 to 21.59, 21.585 to 21.59, but 21.5821 to 21.58