标签:style blog http color io 使用 ar strong for
1 | 00000001 |
12 | 00000012 |
1203 | 00001203 |
123456789 | 123456789 |
1234567 | 01234567 |
%%使用Io:fromat来输出~F.P.PadModC. %% ~F. ---> ~4. 宽度为F %% P. ---> . 无精度要求 %% Pad ---> 0 用Pad填充 %% Mod ---> 没有控制序列修饰符指定 %% C ---> B 控制为10进制输出 %% format_integer_8_digit(Num) -> lists:flatten(io_lib:format("~8..0B", [Num])).
%%使用string:right来构造 format_integer_8_digit2(Num)when is_integer(Num) -> string:right(integer_to_list(Num),8,0); format_integer_8_digit2(NumList) -> string:right(NumList,8,0).
方法一 | 1.如果给的数字大于8位就会输出* ,不符合需求 2.不能指定填充的倍数,只能是写死为8,不灵活 |
方法二 | 1.如果给的数字大于8位,会把数字从右边起至第8位截断,不符合需求:123456789--->23456578 |
format_integer_8_digit3(Number, Padding) when Number < 0 -> [$- | format_integer_8_digit3(-Number, Padding - 1)]; format_integer_8_digit3(Number, Padding) -> NumberList = integer_to_list(Number), ZeroesNeeded = max(Padding - length(NumberList), 0), lists:flatten([lists:duplicate(ZeroesNeeded, $0), NumberList]).
插播小Tip:
erlang:system_info(otp_release).
[Erlang_Question22]如何按规则位数输出数字
标签:style blog http color io 使用 ar strong for
原文地址:http://www.cnblogs.com/zhongwencool/p/erlang_format_integer.html