我正在学习Matlab,我不明白为什么(eps * 0.5) + 1不大于1。
eps
ans =
2.220446049250313e-16
fprintf('%.52f\n', eps);
0.0000000000000002220446049250313080847263336181640625
sign(eps)
ans =
1
% 1 means that eps is >= 0
eps >= 0
ans =
logical
1
eps > 0
ans =
logical
1
eps < 0
ans =
logical
0
% so, now I take half of eps
my_half_eps = eps * 0.5;
my_half_eps
my_half_eps =
1.110223024625157e-16
fprintf('%.52f\n', my_half_eps);
0.0000000000000001110223024625156540423631668090820312
sign(my_half_eps)
ans =
1
% half eps is positive
my_half_eps >= 0
ans …Run Code Online (Sandbox Code Playgroud)