delphi 中CompareValue用法及比较两个相同的值但却提示不相等的问题解决办法

交流QQ:2609715119

CompareValue中的参数类型只能是Integer、Int64、Single、Double、Extended

但是一个CompareValue函数中的参数类型要一致,否者即使看上去一样但是比较结果也不一样

/ 比较两个相等的浮点数
  case CompareValue(A, B) of
    LessThanValue    : ShowMessage('A < B');
    EqualsValue      : ShowMessage('A = B');
    GreaterThanValue : ShowMessage('A > B');
  end;

  // 比较两个不相等的浮点数
  case CompareValue(A, C) of
    LessThanValue    : ShowMessage('A < C');
    EqualsValue      : ShowMessage('A = C');
    GreaterThanValue : ShowMessage('A > C');
  end;

  // 比较2不平等的浮动,但允许 + / - 0.2的差异
  case CompareValue(A, C, 0.2) of
    LessThanValue    : ShowMessage('A < C');
    EqualsValue      : ShowMessage('A = C');
    GreaterThanValue : ShowMessage('A > C');
  end;


例如:
CompareValue中的参数不能用dxdbgrid的dxDBGrid1Column9.SummaryFooterValue和dxcurrencyedit1.value进行比较,因为dxDBGrid1Column9.SummaryFooterValue的值类型是extended(超长浮点类型)而dxcurrencyedit1.value的值是double,所以造成了错误 

猜你喜欢

转载自blog.csdn.net/zisongjia/article/details/80169528
今日推荐