Cannot subtract number of order smaller then e-4 from variable

조회 수: 6 (최근 30일)
Dominik Stolfa
Dominik Stolfa 2024년 11월 26일
댓글: Dominik Stolfa 2024년 11월 26일

a=0.1; a=a-1e-5 gives result a=0.1000

채택된 답변

Torsten
Torsten 2024년 11월 26일
편집: Torsten 2024년 11월 26일
It's just a question of how the numbers are displayed.
Internally, the precision of computing is much higher.
format long % Use display format long
a = 0.1;
a = a - 1e-5
a =
0.099990000000000
format short
a
a = 0.1000
  댓글 수: 3
Walter Roberson
Walter Roberson 2024년 11월 26일
편집: Walter Roberson 2024년 11월 26일
format long % Use display format long
a = 0.1;
fprintf('%.999g\n', a)
0.1000000000000000055511151231257827021181583404541015625
a = a - 1e-5
a =
0.099990000000000
fprintf('%.999g\n', a)
0.09999000000000000942801392511682934127748012542724609375
Dominik Stolfa
Dominik Stolfa 2024년 11월 26일
Thank you for nice example. I was confused before whether the Matlab changes the values at all because even after subtracting 6e-5 or so, the values were still same. I didn’t go past up to 9e-5 because I was like “what are the chances”. :D

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by