## Issue

I have a UISlider that has min value of 0 and a max value of 1.

When it stops it can be any number such as

```
3.2990444444444442
```

In this situation I want to increase the last number to a **3** as in

```
3.2990444444444443
```

But since it’s a slider, I’ll never know the exact number until it stops, so the number might be

`0.0019881635`

at which I would want to increase to `0.0019881636`

or `0.999`

to `1.0`

How can I do this?

If it’s not clear what I want to do, **no matter what the last digit is in the slider decimal value, I need to increase it by 1**

A lot of the answers that I came across are in another language, not Swift

## Solution

Consider this solution:

```
extension Float {
func decimalCount() -> Int {
if self == Float(Int(self)) {
return 0
}
let integerString = String(Int(self))
let doubleString = String(self)
let decimalCount = doubleString.count - integerString.count - 1
return decimalCount
}
mutating func increaseLast(){
let powerfactor = pow(10, Float(decimalCount()))
self = (self * powerfactor + 1) / powerfactor
}
}
```

I didnĀ“t test this thoroughly but it should work. Got the function `decimalcount`

from this so answer

Usage example:

```
let array: [Float] = [0.999, 0.0004, 0.004, 0.009]
array.forEach{
var a = $0
a.increaseLast()
print($0)
print(a)
}
```

prints:

```
0.999
1.0
0.0004
0.0005
0.004
0.005
0.009
0.01
```

Answered By – burnsi

Answer Checked By – Marilyn (BugsFixing Volunteer)