Elixir有一个函数可以将浮点数和整数转换为位串吗?

时间:2013-11-04 14:31:39

标签: types erlang numbers bitstring elixir

Elixir是否有一个接受整数和浮点数并将它们转换为字符串的函数?

我需要这样的东西:

a = 3
b = 3.14
number_to_binary(a)
% => "3"
number_to_binary(b)
% => "3.14"

Elixir中有没有这样的功能?我查看了文档但没有看到任何内容。我还检查了Erlang文档,但也没有看到这样的函数。

3 个答案:

答案 0 :(得分:17)

您也可以使用to_string来实现此目的:

iex(1)> to_string(3)
"3"
iex(2)> to_string(3.14)
"3.14"

或字符串插值:

iex(3)> "#{3.14}"
"3.14"
iex(4)> "#{3}"
"3"

如果你真的想要一个仅转换数字的函数,并且如果给出了其他任何东西则引发,你可以定义自己的:

defmodule Test do
  def number_to_binary(x) when is_number(x), do: to_string(x)
end

答案 1 :(得分:2)

对于每种类型,都有一个功能:

如果您需要常规number_to_binary功能,请尝试使用inspectKernel.inspect,而不是IO.inspect)。

a = 3
b = 3.14
inspect a
% => "3"
inspect b

答案 2 :(得分:1)

检查这个

iex(1)> inspect(3)
"3"
iex(2)> inspect(3.14)
"3.14"
iex(3)> a = inspect(3.14)
"3.14"
iex(4)> a
"3.14"