我需要生成一个稍后会打印的字符串,并且不能有小数点.为此,我试图在Erlang中使用io_lib:format模块,但我不确定实现此目的的适当格式是什么.
例如,我可以使用以下.1精度,但不是.0
io_lib:format("~.2f", [789.1234]).
789.12
io_lib:format("~.1f", [789.1234]).
789.1
io_lib:format("~.0f", [789.1234]).
** exception error: bad argument
in function io_lib:format/2
called as io_lib:format("~.0f",[789.1234])
Run Code Online (Sandbox Code Playgroud)
我只需要:
789.1234产生字符串"789"
123.0产生字符串"123"
我知道我可以进行"重新"替换,但我正在努力寻找一种格式优雅的方式.
Jac*_*l's 21
如果在erlang中截断浮点数,它将变为整数.下面是代码.
1> is_float(round(1.5)).
false
2> is_integer(round(1.5)).
true
3> is_float(trunc(1.5)).
false
4> is_integer(trunc(1.5)).
true
5> round(1.5).
2
6> trunc(1.5).
1
Run Code Online (Sandbox Code Playgroud)
Yas*_*aev 16
1> float_to_list(223.44456,[{decimals,0}]).
"224"
2> float_to_list(223.44456,[{decimals,6}]).
"223.444560"
3> float_to_list(223.44456,[{decimals,6},compact]).
"223.44456"
Run Code Online (Sandbox Code Playgroud)