defmodule Ratio.FloatConversion do @doc """ Converts a float to a rational number. Because base-2 floats cannot represent all base-10 fractions properly, the results might be different from what you might expect. See [The Perils of Floating Point](http://www.lahey.com/float.htm) for more information about this. ## Examples iex> Ratio.FloatConversion.float_to_rational(10.0) Ratio.new(10, 1) iex> Ratio.FloatConversion.float_to_rational(13.5) Ratio.new(27, 2) iex> Ratio.FloatConversion.float_to_rational(1.1) Ratio.new(2476979795053773, 2251799813685248) """ def float_to_rational(float) do {numerator, denominator} = Float.ratio(float) Ratio.new(numerator, denominator) end end