# Rounding a double value to x number of decimal places in swift

###### Posted By: Anonymous

Can anyone tell me how to round a double value to x number of decimal places in Swift?

I have:

```
var totalWorkTimeInHours = (totalWorkTime/60/60)
```

With `totalWorkTime`

being an NSTimeInterval (double) in second.

`totalWorkTimeInHours`

will give me the hours, but it gives me the amount of time in such a long precise number e.g. 1.543240952039……

How do I round this down to, say, 1.543 when I print `totalWorkTimeInHours`

?

## Solution

You can use Swift’s `round`

function to accomplish this.

To round a `Double`

with 3 digits precision, first multiply it by 1000, round it and divide the rounded result by 1000:

```
let x = 1.23556789
let y = Double(round(1000*x)/1000)
print(y) // 1.236
```

Other than any kind of `printf(...)`

or `String(format: ...)`

solutions, the result of this operation is still of type `Double`

.

**EDIT:**

Regarding the comments that it sometimes does not work, please read this:

What Every Programmer Should Know About Floating-Point Arithmetic

###### Answered By: Anonymous

Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.