社区
C语言
帖子详情
这两个变量,怎么会不相等呢?
william0218
2008-05-13 11:55:05
有两个float 型的变量mu , muprev
printf("mu = %3.9f\n",mu);
printf("muprev = %3.9f\n",muprev);
if(mu == muprev) goto S10;
在程序里面输出的结果都是 0.000000000。
可是在下面的那个判断中却认为不相等,没有跳到S10。感觉太诡异了,请明白的朋友帮忙看看,谢谢!
...全文
267
23
打赏
收藏
这两个变量,怎么会不相等呢?
有两个float 型的变量mu , muprev printf("mu = %3.9f\n",mu); printf("muprev = %3.9f\n",muprev); if(mu == muprev) goto S10; 在程序里面输出的结果都是 0.000000000。 可是在下面的那个判断中却认为不相等,没有跳到S10。感觉太诡异了,请明白的朋友帮忙看看,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
woshizhouqi
2008-05-18
打赏
举报
回复
程序代码出错了。。。。。。。。。
woshizhouqi
2008-05-18
打赏
举报
回复
程序代码出错了。。。。。。。。。
woshizhouqi
2008-05-18
打赏
举报
回复
程序代码出错,导致运行错误。。。。。。。。。。
0.00000000是随机值,事实上两个树不等。。。
帅得不敢出门
2008-05-18
打赏
举报
回复
楼主建议你去看下 float型与0值的比较 直接用=与!=来与0相比较是不行的
laden45
2008-05-18
打赏
举报
回复
学习中~
arong1234
2008-05-18
打赏
举报
回复
跟地址有什么关系?都是打印值
[Quote=引用 22 楼 lockhall 的回复:]
是啊,我上次也遇到过这样写的.
第二个打印的是地址,
第一个是?
引用 21 楼 arong1234 的回复:
估计你使用的是不定参数?这是有可能的。不定参数不会替你做类型转换,加入你用int型传浮点数进去,就会如此
例如:
int a = 10;
float b=10;
printf("a=%f, b=%f", a,b);
你就可能看到很有趣的结果
引用 12 楼 woshizhouqi 的回复:
程序代码出错,导致运行错误。。。。。。。。。。
0.00000000…
[/Quote]
lockhall
2008-05-18
打赏
举报
回复
是啊,我上次也遇到过这样写的.
第二个打印的是地址,
第一个是?
[Quote=引用 21 楼 arong1234 的回复:]
估计你使用的是不定参数?这是有可能的。不定参数不会替你做类型转换,加入你用int型传浮点数进去,就会如此
例如:
int a = 10;
float b=10;
printf("a=%f, b=%f", a,b);
你就可能看到很有趣的结果
引用 12 楼 woshizhouqi 的回复:
程序代码出错,导致运行错误。。。。。。。。。。
0.00000000是随机值,事实上两个树不等。。。
[/Quote]
arong1234
2008-05-18
打赏
举报
回复
估计你使用的是不定参数?这是有可能的。不定参数不会替你做类型转换,加入你用int型传浮点数进去,就会如此
例如:
int a = 10;
float b=10;
printf("a=%f, b=%f", a,b);
你就可能看到很有趣的结果
[Quote=引用 12 楼 woshizhouqi 的回复:]
程序代码出错,导致运行错误。。。。。。。。。。
0.00000000是随机值,事实上两个树不等。。。
[/Quote]
arong1234
2008-05-18
打赏
举报
回复
double也有同样的问题,只是你不会搞出来。因为double有15位精度,如果你用%16lf打印,就可以出现类似问题
[Quote=引用 7 楼 fuqd273 的回复:]
附注:double型无此问题。
[/Quote]
ab0029
2008-05-18
打赏
举报
回复
学习学习!!
iambic
2008-05-18
打赏
举报
回复
include了正确的头文件没有?
iloveu365999
2008-05-18
打赏
举报
回复
计算机语言的这点是比较麻烦的,要弄清楚可要明白计算机的运算原理呀!
fuqd273
2008-05-14
打赏
举报
回复
不知道你怎么操作的,怎么看到你认为的结果的,怎么得到你的结论的。
请具体说明你的测试步骤。
oyxiaoyu0
2008-05-13
打赏
举报
回复
对这属于机器精度转换问题.
if((mu-muprev)<0.000001) goto S10
就认为是相等了
fuqd273
2008-05-13
打赏
举报
回复
float型的变量不能这么比较。
举例来说,你把mu和0进行比较的话,是永远不会相等的,只能做下面的判断:
if (mu < FLOAT_MIN && mu > -FLOAT_MIN ) {
...
}
其中,FLOAT_MIN 是误差值,可以是0.000000001之类的小数。
类似的,你要比较2个float数,做差之后,用我上边给出的方法判断吧。
Treazy
2008-05-13
打赏
举报
回复
浮点数类型的缺陷
虽然printf输出的是一样
但是这2个数可能就是不同的!
0.9999999999999可能为1
1.0000000000001也可能为1
c_spark
2008-05-13
打赏
举报
回复
浮点数精度问题,float类型只能精确到小数点后六位
babyvox1999
2008-05-13
打赏
举报
回复
浮点数判断相等要用一个范围判断 如|a-b|<0.00001
william0218
2008-05-13
打赏
举报
回复
谢谢楼上各位的回复,这段代码是ranlib.c里面的一小段,只是里面的输出是我自己加进去的,我在程序里面调用ignpoi()函数时会经过这段代码。问题诡异之处在于,我在不同的地方调用这个函数时,虽然穿进去的值是相同的(我对传入的参数也做过输出,10.000000000),可是一旦到了ignpoi()函数内部,传入的参数就变成了0.00000000,而且,可是在比较这两个值是否相等时,却出现不同的结果,就是说,第一次调用时比较是相同的,第二次调用时比较是不同的。不知道我说没说明白。
fuqd273
2008-05-13
打赏
举报
回复
数据存储格式相关。
建议去查一下谭浩强的C语言,记得里面有解释。
加载更多回复(3)
java六大必须理解的问题 文档
java六大必须理解的问题、内容比较详细、写的比较具体
matlab中if语句判断
两个
变量
是否
相等
,打印输出
两个
变量
相等
,但if语句就是不执行,why?
matlab中if语句判断
两个
变量
是否
相等
,打印输出
两个
变量
相等
,但if语句就是不执行,why? if语句判断
两个
变量
是否
相等
出现问题 我出现的问题 if语句 if uwb_timestamp(uwb_iter)== SampleTimePoint(imu_iter) uwb_iter = uwb_iter+1; end 发现uwb_iter的值并没有增加,但是把uwb_timestamp(uwb_iter)和SampleTimePoint(imu_iter)打印输出后,两者的值是
相等
的。wh
java中如何判断
两个
变量
相等
_Java中的==符号与equals()的使用(测试
两个
变量
是否
相等
)...
Java 程序中测试
两个
变量
是否
相等
有两种方式:一种是利用 == 运算符,另一种是利用equals()方法。当使用 == 来判断
两个
变量
是否
相等
时,如果
两个
变量
是基本类型
变量
,且都是数值类型(不一定要求数据类型严格相同),则只要
两个
变量
的值
相等
,就返回true。但是对于
两个
引用类型
变量
,只有它们指向同一个对象时, == 判断才
会
返回true。 == 不可用于比较类型上没有父子关系的
两个
对象。很多书...
在javascript判断
两个
变量
值是否
相等
在javascript判断
两个
变量
值是否
相等
,可以使用 ==(等同)操作符 或者 ===(恒等)操作符 == 操作符 “等同”操作符,简单判断2个
变量
值是否
相等
,
变量
类型不一致时,
会
做类型转换,即忽略
变量
的类型进行比较 例子1 var str1 = "123456" ; // 字符串 var str2 = "123456" ; // 字符串 alert(str1==str2) ; // 打印出 t...
jmeter判断值是否
相等
_判断
两个
变量
是否
相等
在javascript判断
两个
变量
值是否
相等
,可以使用 ==(等同)操作符 或者 ===(恒等)操作符== 操作符“等同”操作符,简单判断2个
变量
值是否
相等
,
变量
类型不一致时,
会
做类型转换,即忽略
变量
的类型进行比较例子1var str1 = "123456" ; // 字符串var str2 = "123456" ; // 字符串alert(str1==str2) ; // 打印出 true,即相...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章