2 robbie0 robbie0 于 2016.04.20 21:14 提问

matlab程序进不了if语句,求解答

t=0.0;
dt=0.01;
m=0;
while(t<=5.0)
if(t==1.0)
m=m+1;
end
t=t+dt;
end
为什么进不了if语句呢?

4个回答

caozhy
caozhy   Ds   Rxr 2016.04.20 22:44

浮点数的比较应该用两数相减取绝对值小于某个很小的数的方式进行,因为浮点数可能存在误差。

lxd567
lxd567   2016.06.30 19:04

我运行了下你的程序,稍微改了下数据如下:
t=0.0;
dt=0.01;
m=0;
while t<=2.0
if t == 0.1
m=m+1;
end
t=t+dt;
end
我是单步执行的,当t=0.01的时候,命令窗口里面的结果也是有些费解:
K>> t

t =

0.100000000000000

K>> t-0.1

ans =

-1.387778780781446e-17

    请牛人来回答吧
lxd567
lxd567   2016.06.30 19:08

caozhy 的回答有道理

lxd567
lxd567   2016.06.30 19:12

改成if abs(t-0.1)<=eps 应该可以

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
python if语句
elif想一想:if能完成当xxx时做事情if-else能完成当xxx时做事情1,否则做事情2如果有这样一种情况:当xxx1时做事情1,当xxx2时做事情2,当xxx3时做事情3,那该怎么实现呢?答:elif&amp;lt;1&amp;gt; elif的功能elif的使用格式如下: if xxx1: 事情1 elif xxx2: 事情2 elif xxx3:...
使用if语句来判断最大值
#include<stdio.h> main() { int a,b,max; printf("Input a,b:"); scanf("%d,%d",&a,&b); if(a>b) max=a; if(a<=b) max=b; printf("max=%d\n",max); }知识点:懂得了用单分支来判断最大值。 知道了
c语言入门之项目1.8——利用if语句一元二次方程求解
编译代码 /*********************** **项目【1.8】利用if一元二次方程式** **题目:求二元一次方程的解集。** **作者:李坤** ************************/ #include #include int main() {     float a,b,c,x1,x2;          //定义x,y,z以及此方程的解集x1
用if语句计算整数绝对值
用if语句计算整数绝对值,具体博文请参见苹果开发者新浪博客http://blog.sina.com.cn/s/blog_7aa21f320100r3a9.html
【入门】求三个数的最大数 【基本语法】【if语句】
题目描述 从三个数中找出最大的数。 输入 3个实数 输出 最大的数,输出两遍,先用函数,再用宏。保留3位小数。 样例输入 1 2 3 样例输出 3.0003.000 提示 #include #include using namespace std; #define max1(a,b,c) ((a>b?a:b)>c?(a>b?a:b)
if和else的大bug
当第二个if执行时,if中的条件为false时,if中的语句块还是执行,这是为什么呢? 下面让我来解答,如果产生这种情况,有种可能是临时文件没有清理干净 ,那么就可以选中你的工程,点击鼠标右键,选择“清理并构建”或者“清理”,下面附一张截图: 如果还不行的话就检查是否有一些逻辑或者语法错误 if(id.equals("")&&name.equals("")&&sex.equals("
if语句和goto语句求1到100的和
#include #include int main() { int i,sum=0; i=1; loop:if(i<=100) { sum+=i; i++; goto loop; } printf("%d",sum); } 输出结果:
最小生成树 matlab程序
求最小生成树的matlab程序
多分段函数求值1——用if语句编
01./* 02.*Copyright (c) 2014,烟台大学计算机学院 03.*All rights reserved. 04.*文件名称:test.cpp 05.*作 者:林海云 06.*完成日期:2014年10月16日 07.*版本号:V1.0 08.* 09.*问题描述:从键盘输入X的值(要求为实型),根据下面的公式计算并求出Y的值 10.*输入描
输出三个数的最大值条件表达式及if语句
#include using namespace std; int main() {    int a,b,c,t,max;    cin>>a>>b>>c;    t=(a>b)?a:b;    max=(t>c)?t:c;    cout    return 0; } #include using namespace std; in