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

6 次查看(过去 30 天)
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
str = sprintf('%2.2d', yourInteger)
  3 个评论
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

请先登录,再进行评论。

更多回答(2 个)

the cyclist
the cyclist 2016-1-2
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
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).'))

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by