我试图找出如何将float转换为字符串/二进制文件,但看起来并不像看起来那么容易
iex(1)> to_string(1200.00)
"1.2e3"
iex(2)> Float.to_string(1200.00)
"1.2e3"
我们需要" 1200.00"出来......只是没有用指数表示法
答案 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
。