Matching two numbers using only 2 decimal points

18 次查看(过去 30 天)
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
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))

更多回答(1 个)

Robert Cumming
Robert Cumming 2012-1-8
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
  1 个评论
Anu
Anu 2024-4-16
'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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Residual Analysis 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by