-1

我有一个比较函数,对于我想要做的事情来说太复杂了。我将收到一个可以是正面或负面的双倍。我将存储一个需要为最小值的全局变量。在比较方面,这意味着它是最小的正数,或者如果传入的值为负数,则最小的全局值可能是负数。

如果传入是正数或负数,我的代码正在变成一堆if语句处理。然后,如果当前的全局值是正值或负值,我需要进行不同的比较。

有没有更好的方法来简单地比较两个数字并获得两者中的最低值?

部分示例代码:

if NestObject.RectangularScrap <> 0 then begin
    if NestObject.RectangularScrap > 0 then begin
      //Positive rect scrap
      if(NestObject.RectangularScrap < GBestRect) then begin
        GBestRect := NestObject.RectangularScrap;
      end;
      if(NestObject.RectangularScrap > GWorstRect) then begin
        GWorstRect := NestObject.RectangularScrap;
      end;
    end
    else begin
      //Negative rect scrap
      if GBestRect > 0 then begin
        //Global value is currently positive
        GBestRect := NestObject.RectangularScrap;
      end
      else begin
        //Global value is currently negative, change both values to postive to compare
        if((-1*NestObject.RectangularScrap) < (-1*GBestRect)) then begin
          GBestRect := NestObject.RectangularScrap;
        end;
        if((-1*NestObject.RectangularScrap) > GWorstRect) then begin
          GWorstRect := NestObject.RectangularScrap;
        end;
      end;
    end;
  end; 
4

1 回答 1

4

你试过 min 函数吗?

http://www.delphibasics.co.uk/RTL.asp?Name=Min

于 2013-05-02T15:41:25.853 回答