Comparing strings with extra zero

Hello, I am wanting to perform a safety check that 2 strings are the same:
send: 297.043 rec: 297.043
send: 298.030 rec: 298.03
send: 300.833 rec: 300.833
Theres a problem when I try to test for string equivalence i.e. the 298.030 value, not sure how to resolve this.
thanks

回答 (1 件)

Saurabh
Saurabh 2024 年 11 月 13 日

0 投票

Hi @Jason,
When comparing strings for equivalence, even a small difference in formatting (such as trailing zeros) can cause them to be considered different. In this case, the issue arises with the second pair of strings, where one has a trailing zero and the other does not ("298.030" vs. "298.03").
To perform a safety check that considers such cases, consider converting the strings to numerical values before comparing them. This approach ignores formatting differences like trailing zeros.
Use 'str2double' to convert the string representations of numbers to actual numerical values.
Leverage the following link to know more about function:
I hope this helps.

3 件のコメント

Jason
Jason 2024 年 11 月 13 日
Thanks, I did actually do that.
So my raw values are actually these:
send =
2.970429350000000e+02
rec =
' 297.043 '
dE =
6.500000000642103e-05
send
send
dE= abs(send-str2double(rec))
if dE<=0.00001
do something
end
Jason
Jason 2024 年 11 月 13 日
Seems I have to do this:
send=str2double(sprintf('%0.3f',send))
Saurabh
Saurabh 2024 年 11 月 13 日
Thanks for the reply,
If 0.00001 is too strict for the application, consider increasing the tolerance to accommodate the precision differences. For example, consider using 0.0001 instead?

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeLanguage Support についてさらに検索

製品

リリース

R2023b

タグ

質問済み:

2024 年 11 月 13 日

コメント済み:

2024 年 11 月 13 日

Community Treasure Hunt

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

Start Hunting!

Translated by