# Exponenciation in Ruby <> Javascript and Ruby to_i in Javascript and prevent rounding float/decimals

Let’s begin with an actual example and conversion for both languages(Ruby and JavaScript).

Most of the time, if you want to take n number of decimals after the `.`

from a big decimal or just fill it with zeros, you would do something like this:

Ruby

```
number = 4.9999999
# eg: with a precision of 6
'%.6f' % number # => "5.000000"
sprintf('%.6f', number) # => "5.000000"
format('%.6f', number) # => "5.000000"
```

## Javascript

```
number = 4.9999999
number.toFixed(6) => '5.000000'
```

## How to solve that problem?

By using a custom method!

Ruby

```
def truncate_float(number, precision)
factor = 10 ** precision
(factor * number).to_i / factor.to_f
end
result = truncate_float(4.9, 6)# => 4.9
# then
'%.6f' % result # => "4.900000"
truncated_value = truncate_float(4.9999999, 6) # => 4.999999
'%.6f' % truncated_value # => "4.999999"
```

Now in JavaScript

```
function truncateDecimal(decimalNumber, precision) {
factor = Math.pow(10, precision)
return Math.floor(factor * decimalNumber) / factor
}
truncateDecimal(4.9, 6) // 4.9
truncateDecimal(4.9999999999, 6) // 4.999999
```

There you have it!