在MATLAB中有关将值与pi进行比较的问题

问题描述

|| 我想在MATLAB中找到pi,然后将其与MATLAB中已经包含的pi进行比较。 所以当我写
while(p~=pi)             
循环似乎是无止境的,因为它一直在测试MATLAB pi具有的所有数字。 所以当我写:
p=3.1416;
if p==pi
  disp(\'yes\');
else
  disp(\'no\');
end
答案自然是没有。因此,我想找到一种方法,在该点之后仅保留五位数字并进行测试,测试pi = 3.14159。 有人可以帮忙吗?     

解决方法

if abs(p-pi) <= 1e-5
  disp yes;
else
  disp no;
end
有关详细信息,请参见此堆栈溢出答案。     ,查看文件交换上的功能ѭ3。它使您可以舍入到小数位数。例如。例如:
if round2(p,1e-5) == round2(pi,1e-5),disp(\'yes\');
end
    ,要比较浮点数,应使用eps。沿线的东西 如果abs(p-pi)<= eps     ....一样 我还看到2 * eps代替了eps。但是以上是比较浮点数的更好方法。在你的情况下,它变成 而abs(p-pi)> 2 * eps   ..... 结束 -纳赛尔