在Erlang中截断一个浮点数

BAR*_*BAR 11 floating-point erlang list

我正在使用一个函数从浮点数创建一个列表.

 float_to_list(0.02).
Run Code Online (Sandbox Code Playgroud)

它返回:

"2.00000000000000000000e-002"
Run Code Online (Sandbox Code Playgroud)

我需要它给我一个完全相同的数字:

"0.20"

如果我喂它5.23

"5.23"

如果我喂它5.5

"5.50"

所以基本上数字四舍五入到小数点后两位.可能很容易解决.

谢谢

编辑:

我想使用它看起来可能有效的io格式,

但它不在这个例子中:

wxTextCtrl:setValue( TcGrossProfit, io:format("~p", [NUMBER]), ),
Run Code Online (Sandbox Code Playgroud)

看来textctrl想要一个字符串,我不想把它打印到屏幕上.

小智 25

你在寻找这样的东西:

6> F = 5/2.
2.50000
7> io_lib:format("~.1f",[F]).
["2.5"]
8> io_lib:format("~.2f",[F]).
["2.50"]
9> io_lib:format("~.3f",[F]).
["2.500"]
Run Code Online (Sandbox Code Playgroud)

如果是,请查看模块io_lib.

  • +1 是唯一提到 `io_lib` 的答案 - 格式化为字符串(又名列表)的东西,而不仅仅是像 `io` 那样打印输出。 (2认同)