MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Zaza on 4 Jan 2013

if i have

int = 12345;

length_int = 5;

???

*No products are associated with this question.*

Answer by Azzi Abdelmalek on 4 Jan 2013

Edited by Azzi Abdelmalek on 4 Jan 2013

Accepted answer

int=-123456789 max(ceil(log10(abs(int))),1)

Answer by Sean de Wolski on 4 Jan 2013

Edited by Sean de Wolski on 4 Jan 2013

**Edit**

nnz(num2str(int) - '-')

Show 1 older comment

Answer by Davide Ferraro on 4 Jan 2013

Casting the variable into a string may be risky because you may get to "unexpected" cases such as:

int = 12345678901234567890123 numel(num2str(int)) ans =

12

You may consider a numeric approach using LOG10: floor(log10(int))+1 all numbers between 10 and 100 will have a LOG10 between 1 and 2 so you can use FLOOR to get the lower value (1 in this case) and then you need to add the value 1 cause you are trying to compute the number of digits and not the power of ten.

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/57970#comment_120731

What is the "length" of -1 and 0?