# 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!