defmodule Exoddic.Converter.Us do @behaviour Exoddic.Converter @moduledoc """ .us-style moneyline odds """ def from_prob(amount) when amount == 0.00, do: 0.0 def from_prob(amount) when amount <= 0.50, do: 100 * ((1 - amount)/amount) def from_prob(amount) when amount > 0.50, do: -100 * (amount / (1 - amount)) def to_prob(amount) when amount == 0, do: 0.0 def to_prob(amount) when amount < 0, do: amount / (amount - 100) def to_prob(amount) when amount > 0, do: 100/ (amount + 100) @doc "Nearest integer; includes prepended '+' for non-negative" def for_display(amount) when amount < 0, do: "#{round(amount)}" def for_display(amount) when amount >= 0, do: "+#{round(amount)}" end