 
   defp multiple_of(_, nil), do: :ok
 
-  defp multiple_of(:integer, value)
-       when is_integer(value),
-       do: do_multiple_of(value)
-
-  defp multiple_of(:float, value)
-       when is_float(value) or is_integer(value),
-       do: do_multiple_of(value)
-
-  defp multiple_of(:number, value)
-       when is_float(value) or is_integer(value),
-       do: do_multiple_of(value)
+  defp multiple_of(:integer, value) when is_integer(value), do: do_multiple_of(value)
+
+  defp multiple_of(:float, value) when is_number(value), do: do_multiple_of(value)
+
+  defp multiple_of(:number, value) when is_number(value), do: do_multiple_of(value)
 
   defp multiple_of(:integer, value),
     do:


  defp maximum(_, nil), do: :ok

  defp maximum(:number, value)
       when is_integer(value) or is_float(value),
       do: :ok

  defp maximum(:integer, value)
       when is_integer(value),
       do: :ok

  defp maximum(:float, value)
       when is_integer(value) or is_float(value),
       do: :ok

  defp maximum(:integer, value),
    do: {:error, "Expected an Integer for maximum, got #{inspect(value)}."}


  defp minimum(_, nil), do: :ok

  defp minimum(:number, value) when is_number(value), do: :ok

  defp minimum(:integer, value) when is_integer(value), do: :ok

  defp minimum(:float, value) when is_number(value), do: :ok

  defp minimum(:integer, value),
    do: {:error, "Expected an Integer for minimum, got #{inspect(value)}."}
