Elixir - 将float转换为字符串

时间:2016-08-03 03:53:34

标签: elixir

我试图找出如何将float转换为字符串/二进制文件,但看起来并不像看起来那么容易

iex(1)> to_string(1200.00)
"1.2e3"

iex(2)> Float.to_string(1200.00)
"1.2e3"

我们需要" 1200.00"出来......只是没有用指数表示法

1 个答案:

答案 0 :(得分:12)

如果没有关于您的用例的更多详细信息,这将为您提供所需的结果:

iex(1)> Float.to_string(1200.00, decimals: 2)
"1200.00"

它正在使用erlang的float_to_binary/2,并且将在elixir 1.4(https://github.com/elixir-lang/elixir/blob/v1.3.2/lib/elixir/lib/float.ex#L225)中弃用:

def to_string(float, options) do
    :erlang.float_to_binary(float, expand_compact(options))
end

在elixir 1.8中,仍有Float.to_string/1。不推荐使用Float.to_string/2,建议直接使用:erlang.float_to_binary/2