# How to get the last two digits of a number?

70 views (last 30 days)

Show older comments

Maximilian Lingel
on 10 May 2021

Commented: Image Analyst
on 22 Jan 2022

Hello,

I have a table with 505 rows and 1 column. Each row contains a 4 digit number and from of these numbers I would like to extract the last two digits to add a second column to that table containing the last two digits of every number in the first column.

I would be grateful for any hints. Thank you

##### 0 Comments

### Accepted Answer

David Fletcher
on 10 May 2021

x=4974

y=floor((x/100-floor(x/100))*100)

##### 3 Comments

Felician Putz
on 22 Jan 2022

Image Analyst
on 22 Jan 2022

floor(1.0000)

x = 1001;

v = floor((x/100-floor(x/100))*100)

fprintf('%.32f', (x/100-floor(x/100))*100) % This is not 1

### More Answers (1)

DGM
on 10 May 2021

Assuming they're integers:

% 10 rows random integers

n = (randi(8999,1,10)+1000)'

n = [n mod(n,100)]

If they aren't integers, you should decide how you want to round them first.

##### 3 Comments

Adam Danz
on 10 May 2021

Either of the two existing solutions will work with 4-digit integers but note that if the 3rd digit is a 0 as in 4206, the extraction will be 6 and not 06 since matlab does not preserve the 0 place holder. If you want to retain the 0, you'll need to extract the digis as strings or character vectors.

Method 1: convert to string after extraction

rng(123) % for reprodicibility

x = round(rand(10,1)*10000);

lastTwo = mod(x,100);

charVec = compose('%02d',lastTwo); % for char-vectors

str = string(compose('%02d',mod(x,100))); % for string array

T = table(x, lastTwo, charVec, str)

Method 2: convert to string and then extract

rng(123) % for reprodicibility

x = round(rand(10,1)*10000);

xstr = string(x);

str = extractAfter(xstr,2);

T = table(x, lastTwo, str)

### See Also

### Categories

### Products

### Community Treasure Hunt

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

Start Hunting!