Current section

Files

Jump to
smallex lib number.ex
Raw

lib/number.ex

defmodule Number do
@moduledoc """
Documentation for Number.
"""
@doc """
Pad number at zero (string return)
## Examples
iex> Number.pad_zero( 123 )
"00000000000123"
"""
def pad_zero( number, length \\ 14 ), do: pad( number, length, "0" )
@doc """
Pad number at any (string return)
## Examples
iex> Number.pad( 123, 6, "_" )
"___123"
"""
def pad( number, length, padding ) when is_integer( number ) do
number |> Integer.to_string |> String.pad_leading( length, padding )
end
@doc """
Calculate percent (string return)
## Examples
iex> Number.percent( 100, 8 )
"12.5%"
iex> Number.percent( 0, 8 )
"0.0%"
iex> Number.percent( 100, 0 )
"(n/a)"
"""
def percent( numerator, denominator ) do
cond do
denominator == 0 || denominator == nil -> "(n/a)"
denominator != 0 -> ( numerator / denominator |> Float.to_string ) <> "%"
end
end
end