在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   ..... 结束 -纳赛尔     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...