使用erlang转换数据

时间:2013-01-09 05:15:17

标签: erlang

我现在的问题是:

我有变量M,其中包含:37.5(如您所见为整数)

我想转换M以便成为字符串“37.5”

所以37.5应该变成“37.5”

我尝试使用功能:

 M2=integer_to_list(M)

但是当我执行此功能时,它会显示以下错误:

** exception error: bad argument
     in function  integer_to_list/1
        called as integer_to_list(37.5)

2 个答案:

答案 0 :(得分:1)

integer_to_list在那种情况下不起作用,因为37.5是一个浮点而不是一个整数。 Erlang确实有float_to_list,但输出通常很不可用。

相反,我建议调查mochiweb项目,以便将浮点数转换为列表。特别是mochinum模块:

> M = 37.5,
> mochinum:digits(M).
"37.5"

答案 1 :(得分:1)

@chops有一个很好的答案,IMO(使用mochinum:digits / 1),但你可能也会看到io_lib模块。例如:

8> io_lib:format("~.2f",[37.5]).
 ["37.50"]

9> io_lib:format("~.1f",[37.5]).
 ["37.5"]

我意识到这可能不是你想要的,在这种情况下我认为查看/使用mochinum模块是一种有效的方法,但是io_lib经常被忽略并提供一组非常有用的函数格式化列表/字符串