#include <stdio.h>
int main()
{
double x,y;
scanf("%f",&x);
y=(x>90);
printf("%f\n",y);
return 0;
}
98
0.000000
Press any key to continue
却是这样的结果请问是怎么回事啊?
98>90 y应该是1啊!
int main()
{
double x,y;
scanf("%f",&x);
y=(x>90);
printf("%f\n",y);
return 0;
}
98
0.000000
Press any key to continue
却是这样的结果请问是怎么回事啊?
98>90 y应该是1啊!
解决方案 »
- typedef& &
- 仿outlook express 收件人地址栏 的控件
- 我要从List中拖动文件到本地中,请问如何获取拖动到的目标路径?
- waveOutxxxx函数,双缓冲,发现声音有问题
- 天啊,我就是编译不出能独立运行的EXE文件,在其他机子上运行,救救我吧!
- 通过atl生成的bho在IE加载项中怎么提示未验证呢?
- TC下的串口读写命令到VC下都不起作用了吗?比如inportb之类的?
- C高手请进。。有关ftp的win api的使用
- 菜鸟问题之2:关于网页与VC++交互的问题
- 如何在VC中调用Excel表格中的数据
- vc程序设计出现的错误:error C2533: 'DENGLU::DENGLU' : constructors not allowed a return type;error C2065: 'IDIN' : undeclared identifier;
- libnet和winpcap是否对无线的支持??有什么参考资料,
if (((x-90) >= - EPSINON) && ((x-90) <= EPSINON)
{
...
}
printf("%lf\n",y);
double的比较不能直接用 ' <'、'>'、'=='等这些去判断。 例如:if (float1 > float2) // 不推荐的写法 例如:if (float1-float2 > 0) // 正确的写法 这里可以把x和90的差与常量const float EPSINON = 0.00001;进行比较
if (((x-90) >= - EPSINON) && ((x-90) <= EPSINON)
{
...
}
例如:if (float1-float2 > 0) // 正确的写法 这样写也不合理吧?浮点数不能直接和0比较..........嗷喔........
printf("%lf\n",y);
即可
正解!
浮点型和int型直接比较很危险~
应该是不能用"==",">""<"还是可以的
如果比较是否相等的时候用你说的常量差来判断
而在于lz定义的变量是double,而输入格式却是float,所以数据只取32位,肯定会有问题的