tianxiezhi 2015-11-06 05:49 采纳率: 50%
浏览 2912
已采纳

C++ double 变量与if 条件判断出错

大家好,请教下:if else 判断时出错不知何故,输入整数时是ok的,输入小数时却是错误的,不知问题出在哪儿,大家帮我指点指点
Dlg.m_strX1输入框的数据类型double

CAddJunDlg Dlg;
if (IDOK == Dlg.DoModal())
{
UpdateData();
//1.定义计数值
double A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15,
A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30;

const float EPSINON = 0.00001;
if (fabs(Dlg.m_strX1) >= -EPSINON && fabs(Dlg.m_strX1) <= EPSINON)A1 = 0;//这种情况下判断等于零

else A1 = 1;
if (fabs(Dlg.m_strX2) >= -EPSINON && fabs(Dlg.m_strX2) <= EPSINON)A2 = 0;//这种情况下判断等于零

else A2 = 1;
if (fabs(Dlg.m_strX3) >= -EPSINON && fabs(Dlg.m_strX3) <= EPSINON)A3 = 0;//这种情况下判断等于零

else A3 = 1;
if (fabs(Dlg.m_strX4) >= -EPSINON && fabs(Dlg.m_strX4) <= EPSINON)A4 = 0;//这种情况下判断等于零

else A4 = 1;
if (fabs(Dlg.m_strX5) >= -EPSINON && fabs(Dlg.m_strX5) <= EPSINON)A5 = 0;//这种情况下判断等于零
else A5 = 1;
if (fabs(Dlg.m_strX6) >= -EPSINON && fabs(Dlg.m_strX6) <= EPSINON)A6 = 0;//这种情况下判断等于零

else A6 = 1;
if (fabs(Dlg.m_strX7) >= -EPSINON && fabs(Dlg.m_strX7) <= EPSINON)A7 = 0;//这种情况下判断等于零
else A7 = 1;
if (fabs(Dlg.m_strX8) >= -EPSINON && fabs(Dlg.m_strX8) <= EPSINON)A8 = 0;//这种情况下判断等于零

else A8 = 1;
if (fabs(Dlg.m_strX9) >= -EPSINON && fabs(Dlg.m_strX9) <= EPSINON)A9 = 0;//这种情况下判断等于零

else A9 = 1;
if (fabs(Dlg.m_strX10) >= -EPSINON && fabs(Dlg.m_strX10) <= EPSINON)A10 = 0;//这种情况下判断等于零
else A10 = 1;
if (fabs(Dlg.m_strX11) >= -EPSINON && fabs(Dlg.m_strX11) <= EPSINON)A11 = 0;//这种情况下判断等于零

else A11 = 1;

图片说明

  • 写回答

11条回答 默认 最新

  • flyasfish 2015-11-06 06:45
    关注

    代码有不少垃圾:
    fabs(Dlg.m_strX1) >= -EPSINON
    这个条件永远都是TRUE

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

问题事件

  • 已采纳回答 11月5日

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制