我正在使用一个函数从一个float创建一个列表。
float_to_list(0.02).
它会传回:
"2.00000000000000000000e-002"
我需要它给予我一个数字完全一样:
“零点二”
如果我喂它5.23
“五点二十三分”
如果我喂它5.5
“五块五”
所以基本上数字四舍五入到小数点后两位。可能很容易修复。
谢谢
编辑:
我想使用io格式它看起来可能会工作,
但在本例中没有:
wxTextCtrl:setValue( TcGrossProfit, io:format("~p", [NUMBER]), ),
看起来textctrl想要一个字符串,我不想把它打印到屏幕上。
5条答案
按热度按时间uubf1zoe1#
你在找这样的东西:
如果是,请查看io_lib模块。
1rhkuytd2#
mochinum:digits
将浮点数转换为具有适当精度级别的字符串。不完全是观察员所要求的,但仍然很有用。
qyzbxkaa3#
或者,您可以使用已经在使用的函数。
float_to_list(0.02,[{decimals, 2}])
输出'0.02'或者对于Elixir用户;)
:erlang.float_to_list(5.231,[{:decimals, 2}])
输出'5.2'mm5n2pyu4#
This link提供了截断/floor或ceil或舍入浮点数的函数。给定这些函数,您可以通过乘以100舍入为2位数,然后除以100(可能会再次舍入以避免精度错误)
guicsvcw5#
我知道人们不喜欢“我不是X语言的Maven”的回答,但是printf命令是相当普遍的,所以我会说,在Erlang中寻找printf的模拟。
编辑:看起来格式和fwrite可能是那些类似的东西。有关erlang.org的更多信息。