How to convert some numbers to strings with the max length?

for example, I want to convert 1 to 32 to strings length 2, if shorter, '0's are added to the front of the strings. 1 -> '01', 2 -> '02', ..., 32 -> '32'.

 採用された回答

Image Analyst
Image Analyst 2016 年 1 月 2 日

1 投票

str = sprintf('%2.2d', yourInteger)

3 件のコメント

Qiu
Qiu 2016 年 1 月 3 日
thank you for your answer, but if the length of the number is determined when the program is executed, how to solve it?
Image Analyst
Image Analyst 2016 年 1 月 3 日
Is this what you mean?:
% Get a format specifier string for the biggest number we expect to ever have.
yourBiggestInteger = 123456
numDigits = ceil(log10(yourBiggestInteger))
formatSpecifierString = sprintf('%%%d.%dd', numDigits, numDigits)
% Test code:
yourInteger = 12;
str = sprintf(formatSpecifierString, yourInteger)
yourInteger = 1234;
str = sprintf(formatSpecifierString, yourInteger)
In the command window:
yourBiggestInteger =
123456
numDigits =
6
formatSpecifierString =
%6.6d
str =
000012
str =
001234
Qiu
Qiu 2016 年 1 月 10 日
Thank you very much! That's what I need.

サインインしてコメントする。

その他の回答 (2 件)

the cyclist
the cyclist 2016 年 1 月 2 日

1 投票

An alternative to Image Analyst's (but I prefer his method):
str = num2str(yourInteger,'%02d')

1 件のコメント

Qiu
Qiu 2016 年 1 月 3 日
thank you for your answer, but if the length of the number is determined when the program is executed, how to solve it?

サインインしてコメントする。

Walter Roberson
Walter Roberson 2016 年 1 月 4 日

0 投票

In the case where you want a bunch of values to all come out the same length, then
cellstr(num2str(TheValues(:)))
You can also toss in an optional format such as
cellstr(num2str(TheValues(:), '%.2f'))
Example:
cellstr(num2str((1:31).'))

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

タグ

質問済み:

Qiu
2016 年 1 月 2 日

コメント済み:

Qiu
2016 年 1 月 10 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by