Matching two numbers using only 2 decimal points

10 views (last 30 days)
joseph Frank on 8 Jan 2012
Commented: Anu on 16 Apr 2024
Hi,
I have 2 numbers that I want to match in my program and if these don't match I want to receive an error message. The two numbers that I want to match should match only up to the first two decimal points. For example,
A=3.82 and B=3.829 should match since 3.82 is common. On the other hand, A=3.82 and B=3.8 don't match .How can I match A and B?

Chandra Kurniawan on 8 Jan 2012
A = 3.82;
B = 3.829;
C = 3.82;
D = 3.8;
Astr = num2str(A);
Bstr = num2str(B);
Astr = Astr(strfind(Astr,'.'):end);
Bstr = Bstr(strfind(Bstr,'.'):end);
if length(Astr) < 3, Astr = strcat(Astr,'0'); end
if length(Bstr ) < 3, Bstr = strcat(Bstr,'0'); end
strcmp(Astr(1:3),Bstr(1:3))

Robert Cumming on 8 Jan 2012
compare = @(n1,n2,n_dcp) round(n1*10^n_dcp)==round(n2*10^n_dcp);
>> compare(1.23,1.234,2)
ans =
1
>> compare(1.23,1.2,2)
ans =
0
Anu on 16 Apr 2024
'compare' function requires one of the following Toolbox:
1. System Identification Toolbox
2. Model Predictive Control Toolbox
3. Predictive Maintenance Toolbox
Is there any alternative method