how can i compute the length of an integer?
52 ビュー (過去 30 日間)
古いコメントを表示
if i have
int = 12345;
length_int = 5;
???
採用された回答
Azzi Abdelmalek
2013 年 1 月 4 日
編集済み: Azzi Abdelmalek
2013 年 1 月 4 日
int=-123456789
max(ceil(log10(abs(int))),1)
1 件のコメント
Christian Ziegler
2020 年 11 月 14 日
this doesn't work for 10, 100, 1000...
for example max(ceil(log10(abs(10))),1) equals 1 but it should be 2
simple fix:
int = 10;
max(ceil(log10(abs(int)+1)),1)
その他の回答 (2 件)
Sean de Wolski
2013 年 1 月 4 日
編集済み: Sean de Wolski
2013 年 1 月 4 日
Edit
nnz(num2str(int) - '-')
Davide Ferraro
2013 年 1 月 4 日
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.
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!