io:format के साथ समस्या यह है कि यदि आपके पूर्णांक फिट नहीं करता है, तो आप तारक मिलता है:
> io:format("~4..0B~n", [1234]).
1234
> io:format("~4..0B~n", [12345]).
****
string:right के साथ समस्या यह है कि यह अक्षर हैं जो फिट नहीं है फेंक देता है:
> string:right(integer_to_list(1234), 4, $0).
"1234"
> string:right(integer_to_list(12345), 4, $0).
"2345"
मुझे एक लाइब्रेरी मॉड्यूल नहीं मिला है जैसा कि मैं अपेक्षा करता हूं (यानी मेरा नंबर प्रिंट करें, भले ही वह पैडिंग में फिट न हो), इसलिए मैंने अपना खुद का स्वरूपण समारोह लिखा:
%%------------------------------------------------------------------------------
%% @doc Format an integer with a padding of zeroes
%% @end
%%------------------------------------------------------------------------------
-spec format_with_padding(Number :: integer(),
Padding :: integer()) -> iodata().
format_with_padding(Number, Padding) when Number < 0 ->
[$- | format_with_padding(-Number, Padding - 1)];
format_with_padding(Number, Padding) ->
NumberStr = integer_to_list(Number),
ZeroesNeeded = max(Padding - length(NumberStr), 0),
[lists:duplicate(ZeroesNeeded, $0), NumberStr].
(आप iolist_to_binary/1 का उपयोग करने के लिए द्विआधारी परिणाम कन्वर्ट करने के लिए कर सकते हैं, या आप lists:flatten (io_lib:format ("~ s", [परिणाम])) का उपयोग कर सकते है कि यह एक सूची में कन्वर्ट करने के लिए।)
आप स्पष्टीकरण जोड़ सकते हैं एक और जवाब जोड़ने के बजाय उस उत्तर में। इससे उस प्रश्न को बेहतर बनाने में मदद मिलेगी और दूसरों की और मदद मिलेगी। –
@CoralDoe स्पष्टीकरण उत्तर में किए गए तरीके से उत्तरों को टिप्पणियों को प्रारूपित करना संभव नहीं है। – Stas