MATLAB double addition format long

조회 수: 22 (최근 30일)
vivek patel
vivek patel 2022년 11월 3일
편집: Stephen23 2022년 11월 3일
Why does the below addition show wrong output when i use the format long option ?
  댓글 수: 1
Stephen23
Stephen23 2022년 11월 3일
편집: Stephen23 2022년 11월 3일
"Why does the below addition show wrong output when i use the format long option ?"
Why do you think that it is a "wrong output" ?
Can you show us any double floating point number that is closer to the value 14.2?
format hex
14.2
ans =
402c666666666666
format long
14.2
ans =
14.199999999999999
N = hex2num({'402c666666666665','402c666666666666','402c666666666667'})
N = 3×1
14.199999999999998 14.199999999999999 14.200000000000001
fprintf('%.50f\n',N)
14.19999999999999751310042483964934945106506347656250 14.19999999999999928945726423989981412887573242187500 14.20000000000000106581410364015027880668640136718750

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

채택된 답변

Davide Masiello
Davide Masiello 2022년 11월 3일

추가 답변 (1개)

VBBV
VBBV 2022년 11월 3일
format long
x = 14.1 %
x =
14.100000000000000
x = 0.1
x =
0.100000000000000
x = 14.1 + 0.1 % when you include + operator
x =
14.199999999999999
When a mathematical operator /computation is used between any two numbers, Matlab uses its floating point arithmetic precision to compute precisely, Notice the difference in outputs when individual numbers are present without operators !

카테고리

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

Community Treasure Hunt

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

Start Hunting!

Translated by