Types Elixir一个将浮点和整数转换为位字符串的函数?

Types Elixir一个将浮点和整数转换为位字符串的函数?,types,erlang,numbers,bitstring,elixir,Types,Erlang,Numbers,Bitstring,Elixir,Elixir是否具有接受整数和浮点并将其转换为字符串的函数 我需要这样的东西: a = 3 b = 3.14 number_to_binary(a) % => "3" number_to_binary(b) % => "3.14" 在Elixir中有没有一个功能已经做了类似的事情?我看了看医生,什么也没看到。我还检查了Erlang文档,也没有看到类似的函数。inspect执行此操作 iex(1)> inspect(3) "3" iex(2)> inspect(3.14)

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

我需要这样的东西:

a = 3
b = 3.14
number_to_binary(a)
% => "3"
number_to_binary(b)
% => "3.14"
在Elixir中有没有一个功能已经做了类似的事情?我看了看医生,什么也没看到。我还检查了Erlang文档,也没有看到类似的函数。

inspect执行此操作

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"

对于每种类型,都有一个函数:

如果您想要一个通用的
number\u to\u binary
函数,请尝试简单地使用
inspect
(即
Kernel.inspect
,而不是
IO.inspect

您也可以为此目的使用:

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

如果您使用的是EXTO,它会将整数转换为浮点数。使用
Model.changeset
defmodule Test do
  def number_to_binary(x) when is_number(x), do: to_string(x)
end