## how can i compute the length of an integer?

on 4 Jan 2013

if i have
int = 12345;
length_int = 5;
???

Jan

### Jan (view profile)

on 4 Jan 2013
What is the "length" of -1 and 0?

### Azzi Abdelmalek (view profile)

on 4 Jan 2013
Edited by Azzi Abdelmalek

### Azzi Abdelmalek (view profile)

on 4 Jan 2013

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

### Sean de Wolski (view profile)

on 4 Jan 2013
Edited by Sean de Wolski

### Sean de Wolski (view profile)

on 4 Jan 2013

Edit
nnz(num2str(int) - '-')

Show 1 older comment
Sean de Wolski

### Sean de Wolski (view profile)

on 4 Jan 2013
Friedrich, neither work actually, consider -12345.
Friedrich

### Friedrich (view profile)

on 4 Jan 2013
Good point Sean. But then
numel(num2str(abs(int)))
should do ;)
Sean de Wolski

on 4 Jan 2013
arghh, you win!

### Davide Ferraro (view profile)

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.

G A

### G A (view profile)

on 4 Jan 2013
why, it works:
>> int = 12345678901234567890123
numel(num2str(int))
int =
1.2346e+22
ans =
23
{"found_math": false, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0}