Current section

Files

Jump to
dinero lib utils.ex
Raw

lib/utils.ex

defmodule Dinero.Utils do
@moduledoc false
# 2568.7 * 100 must be 256870 and not 256869.9999...
def convert_currency_to_coins(value) when is_float(value) do
list =
value
|> Float.to_string()
|> String.split(".")
first =
list
|> List.first()
|> String.to_integer()
|> Kernel.*(100)
last = List.last(list)
if String.length(last) == 1 do
first + String.to_integer(last) * 10
else
last
|> String.slice(0, 2)
|> String.to_integer()
|> Kernel.+(first)
end
end
def convert_currency_to_coins(value) when is_integer(value) do
value * 100
end
end