比较4个浮点值以获得最高值

1 iphone floating-point compare objective-c

在比较目标c中的4个浮点值时遇到问题,我想返回这4个整数的最大值或相等值.你可以看到两个在这里是相同的.

这是NSLOG输出

2011-08-17 17:17:30.328 [21087:c203] 1 = 6.000000
2011-08-17 17:17:30.328 [21087:c203] 2 = 4.400000
2011-08-17 17:17:30.352 [21087:c203] 3 = 0.000000
2011-08-17 17:17:30.353 [21087:c203] 4 = 6.000000
Run Code Online (Sandbox Code Playgroud)

让我们说1-4

我已经尝试了MAX(1,2)语句也检查了> =使用if和语句的值...

我可以编写自己的代码来比较使用algorythm的值,但我想检查是否有更简单的方法来做它并让我头疼?

也许创建一个具有很高价值的浮动,然后比较哪一个最接近它?

我试过阅读这个网站,这让我很困惑

我对目标c有点新意,已经做了2年但仍有时候它会让你感到沮丧!

编辑 - 由大脑解决!..

2011-08-18 12:10:26.798 iT[2093:c203] 1 = 6.710000 
2011-08-18 12:10:26.798 iT[2093:c203] 2 = 0.000000 
2011-08-18 12:10:26.799 iT[2093:c203] 3 = 7.000000 
2011-08-18 12:10:26.800 iT[2093:c203] 4 is 9.000000 

float max = MAX(1,MAX(2,MAX(3,4))); NSLog(@"Max is %f", max); 

NSLog Output "Max is 9.000000"
Run Code Online (Sandbox Code Playgroud)

这么简单的解决方法,太棒了!

bra*_*ain 6

看起来很简单,只需嵌套最大调用:

max(1,max(2,max(3,4)))
Run Code Online (Sandbox Code Playgroud)

其中1,2,3,4表示变量名称.

通常这种事情是在集合上完成的,在这种情况下你可以像这样(在伪代码中):

float max = Float.Min_Value;
for (float f in float_array) {
    if (f > max) {
        max = f;
    }
}
Run Code Online (Sandbox Code Playgroud)