Erlang22 如何按規則位數輸出數字

2022-04-09 08:58:02 字數 1426 閱讀 6140

需求:把乙個數字指定長度輸出

例如: 

100000001

1200000012

1203

00001203

123456789

123456789

1234567

01234567

方法一:使用io_lib:format來構造:

方法說明見:

%%

使用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/2來構造

%%

使用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:

檢視otp版本資訊

erlang:system_info(otp_release).

22 如何編寫介面文件

使用者登入介面 介面位址 localhost 8000 login 請求方式 post 引數名描述 引數型別 是否必填 username 使用者名稱string 是password 密碼string 是 建立部落格介面 介面位址 localhost 8000 add article 請求方式 pos...

kali如何手動開啟22埠

首先使用netstat lnt檢視一下當前kali開放的埠,如果沒有開放22埠,我們需要手動開啟22埠。第一步 開啟kail 遠端ssh,開啟辦法如下 1 配置ssh引數 修改sshd config檔案,命令為 vim etc ssh sshd config 將 passwordauthentica...

如何結合OPENCV2 2 和 CUDA

然後開始配置opencv2.2,勾選with cuda,點configure,這時候一般會找不到npp,需要手動配置其路徑 找到cuda npp library root dir,修改其路徑為npp的根目錄,比如我為d sdk。上面兩項 cuda npp include和cuda npp libra...