6

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

我需要这样的东西:

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

Elixir 中是否有一个功能已经做了这样的事情?我查看了文档并没有看到任何内容。我还检查了 Erlang 文档,也没有看到任何这样的函数。

4

3 回答 3

21

你也可以使用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
于 2013-11-05T09:01:01.467 回答
2

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

如果您想要一个通用number_to_binary功能,请尝试简单地使用inspect(即Kernel.inspect,不是IO.inspect)。

a = 3
b = 3.14
inspect a
% => "3"
inspect b
于 2013-11-04T15:06:58.047 回答
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"
于 2013-11-04T15:06:43.303 回答