How can I include leading zeros in a number?
770 次查看(过去 30 天)
显示 更早的评论
I've created a code that requires the user to input a number of their choice. Their number must follow a set of rules, the first being that it must be 6 digits otherwise an error message occurs.
If the user types a number such as 012345, MatLab discards the zero and counts it as a 5 digit number (12345). If I would like MatLab to understand that this is actually a 6-digit number, how would i go about that?
0 个评论
回答(2 个)
Cedric
2017-10-6
编辑:Cedric
2017-10-6
Store/read the user input as a string.
Or, if you want to bring some flexibility, allow users to enter integers without leading zeros, but then when it becomes important to use/display them with leading zeros, print them on 6 digits with a 0 padding:
n = 12 ; % Stored or entered by user.
n_strPadded = sprintf( '%06d', n ) ;
with that you get:
n_strPadded =
'000012'
4 个评论
Real User
2024-1-11
Great except that it counts the minus sign as one "zero". Thus, sprintf('%06d', n) works if n>=0 but sprintf('%07d', n) if n<0. Is there any way to say that I want 6 numbers whether n<0 or not?
Stephen23
2024-1-11
"Is there any way to say that I want 6 numbers whether n<0 or not?"
I guess you mean digits, not numbers. Here are two approaches:
n = +4;
sprintf('%0*d',(n<0)+6,n)
n = -4;
sprintf('%0*d',(n<0)+6,n)
OR
n = +4;
sprintf('%+07d',n)
n = -4;
sprintf('%+07d',n)
Walter Roberson
2018-5-8
Use input with the 's' option, and test for length() 6 and that it contains only digits.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!