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