当前位置:  开发笔记 > 编程语言 > 正文

在比较三个浮点数时双重不等式

如何解决《在比较三个浮点数时双重不等式》经验,为你挑选了1个好方法。

有人可以告诉我为什么以下不起作用?(我的意思是没有输出)

if(0.0001<0.001<0.01)   
    cout<<"hi\n"<

虽然以下工作:

if(0.0001<0.001 && 0.001<0.01)  
    cout<<"hi\n"<

Jack.. 6

因为<C++中没有神奇的n-ary 运算符.

0.0001 < 0.001 < 0.01 

被解析(因为<是左关联的)

(0.0001 < 0.001) < 0.01

0.0001 < 0.001返回值为value的booltrue.现在你有了

true < 0.01

但是根据标准,true当转换为整数类型时,布尔值为1,所以你有

1 < 0.01

这是假的.



1> Jack..:

因为<C++中没有神奇的n-ary 运算符.

0.0001 < 0.001 < 0.01 

被解析(因为<是左关联的)

(0.0001 < 0.001) < 0.01

0.0001 < 0.001返回值为value的booltrue.现在你有了

true < 0.01

但是根据标准,true当转换为整数类型时,布尔值为1,所以你有

1 < 0.01

这是假的.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有