seasongirl 2012-02-09
在实际工作中有些程序不可避免的需要使用数学函数进行计算,比如地图程序的地理坐标到地图坐标的变换。Objective-C做为ANSIC的扩展,使用C标准库头文件<math.h>中定义的数学常量宏及数学函数来实现基本的数学计算操作,所以不必费神再在CocoaFoundation中寻找相应的函数和类了。这里列出一些常用宏和数学函数,更详细的信息还是需要去查阅<math.h>头文件。
数学常量:
#defineM_E2.71828182845904523536028747135266250//e
#defineM_LOG2E1.44269504088896340735992468100189214//log2e
#defineM_LOG10E0.434294481903251827651128918916605082//log10e
#defineM_LN20.693147180559945309417232121458176568//loge2
#defineM_LN102.30258509299404568401799145468436421//loge10
#defineM_PI3.14159265358979323846264338327950288//pi
#defineM_PI_21.57079632679489661923132169163975144//pi/2
#defineM_PI_40.785398163397448309615660845819875721//pi/4
#defineM_1_PI0.318309886183790671537767526745028724//1/pi
#defineM_2_PI0.636619772367581343075535053490057448//2/pi
#defineM_2_SQRTPI1.12837916709551257389615890312154517//2/sqrt(pi)
#defineM_SQRT21.41421356237309504880168872420969808//sqrt(2)
#defineM_SQRT1_20.707106781186547524400844362104849039//1/sqrt(2)
常用函数:
//指数运算
NSLog(@"%.f",pow(3,2));//result9
NSLog(@"%.f",pow(3,3));//result27
//开平方运算
NSLog(@"%.f",sqrt(16));//result4
NSLog(@"%.f",sqrt(81));//result9
//上舍入
NSLog(@"res:%.f",ceil(3.000000000001));//result4
NSLog(@"res:%.f",ceil(3.00));//result3
//下舍入
NSLog(@"res:%.f",floor(3.000000000001));//result3
NSLog(@"res:%.f",floor(3.9999999));//result3
//四舍五入
NSLog(@"res:%.f",round(3.5));//result4
NSLog(@"res:%.f",round(3.46));//result3
NSLog(@"res:%.f",round(-3.5));//NB:thisonereturns-4
//最小值
NSLog(@"res:%.f",fmin(5,10));//result5
//最大值
NSLog(@"res:%.f",fmax(5,10));//result10
//绝对值
NSLog(@"res:%.f",fabs(10));//result10
NSLog(@"res:%.f",fabs(-10));//result10
这里没有列出的三角函数也是属于C标准数学函数的一部分,也可以在<math.h>中查阅。