在objective-c/cocoa-touch中是否有方便的功能来找到最小的数字?

Tha*_*nks 40 cocoa-touch objective-c

我有两个数字,需要返回较低的数字.我可以使用任何功能吗?当然这是一件容易的事,我可以做一个if语句.我只是想知道.

Ale*_*ski 81

如果您正在使用整数,请使用MIN()宏:

MIN(25, 50); //Returns 25
Run Code Online (Sandbox Code Playgroud)

如果你要比较两个NSNumber,那么使用compare:方法:

NSNumber *number, *secondNumber; //Assume 'number'=25, 'secondNumber'=50
NSComparisonResult result = [number compare:secondNumber];

return (result==NSOrderedDescending)?secondNumber:number; //Returns the 'number' NSNumber
Run Code Online (Sandbox Code Playgroud)


hbw*_*hbw 55

C标准库包括几个min()函数,给定两个数字,将返回两者中的较低者:

 double fmin(double x, double y);
 long double fminl(long double x, long double y);
 float fminf(float x, float y);
Run Code Online (Sandbox Code Playgroud)

要使用这些,只需#include <math.h>.

  • 这些是浮点数.整数是否有类似的stdlib函数? (2认同)

Mad*_*pta 9

至少没有.使用

MIN(number1,number2);
Run Code Online (Sandbox Code Playgroud)

最大的没有.使用

MAX(number1,number2);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这适用于整数,没有NSNumbers.对于NSNumber,使用`@(MIN(nsNumber1.intValue,nsNumber2.intValue))` (4认同)