
转自:http://blog.sina.com.cn/s/blog_6cc3d7570100lpi9.HTML 在实际工作中有些程序不可避免的需要使用数学函数进行计算,比如地图程序的地理坐标到地图坐标的变换。Objective-C做为ANSI C的扩展,使用C标准库头文件<math.h>中定义的数学常量宏及数学函数来实现基本的数学计算 *** 作,所以不必费神再在Cocoa Foundation中寻找相应的函数和类了。这里列出一些常用宏和数学函数,更详细的信息还是需要去查阅<math.h>头文件。
数学常量:
#define M_E
#define M_LOG2E
#define M_LOG10E
#define M_LN2
#define M_LN10
#define M_PI
#define M_PI_2
#define M_PI_4
#define M_1_PI
#define M_2_PI
#define M_2_SQRTPI
#define M_SQRT2
#define M_SQRT1_2
常用函数:
//指数运算
NSLog(@"%.f",pow(3,2) ); //result 9
//开平方运算
//上舍入
NSLog(@"res: %.f",ceil(3.000000000001)); //result 4
//下舍入
//四舍五入
//最小值
//最大值
//绝对值
这里没有列出的三角函数也是属于C标准数学函数的一部分,也可以在<math.h>中查阅。
程序中的运用:
+(Nsstring*) formatDataSizedisplay:(NSInteger) dataSize{ //NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init]; Nsstring *display = @"0B"; NSLog(@"data is : %f",dataSize*1.000f); NSLog(@"result is : %f",(dataSize*1.000f)/(1000*1.000f)); NSLog(@"data is : %@",[Nsstring stringWithFormat:@"%.2fKB",((dataSize*1.000f)/(1000*1.000f))]); NSLog(@"data is : %@",(100.897f)]); if (dataSize >= 0 && dataSize < 1000) { display = [Nsstring stringWithFormat:@"%dB",dataSize]; }else if(dataSize >= 1000 && dataSize < (1000*1000) ){ display = [Nsstring stringWithFormat:@"%.1fKB",((dataSize*1.000f)/(1000*1.000f))]; }else if(dataSize >= (1000 * 1000) && dataSize < (1000*1000*1000)){ display = [Nsstring stringWithFormat:@"%.1fMB",((dataSize*1.000f)/(1000*1000*1.000f))]; }else if(dataSize >= (1000 * 1000 * 1000) && dataSize <(1000 * 1000 * 1000 *1000)){ display = [Nsstring stringWithFormat:@"%.1fGB",((dataSize*1.000f)/(1000*1000*1000*1.000f))]; } NSLog(@"data is : %@",display); return [display retain]; } 以上是内存溢出为你收集整理的Objective-C中的常用数学常量宏及函数全部内容,希望文章能够帮你解决Objective-C中的常用数学常量宏及函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)