iOS常用数学常量宏
在实际工作中有些程序不可避免的需要使用数学函数进行计算,比如地图程序的地理坐标到地图坐标的变换。Objective-C做为ANSI C的扩展,使用C标准库头文件<math.h>中定义的数学常量宏及数学函数来实现基本的数学计算操作,所以不必费神再在Cocoa Foundation中寻找相应的函数和类了。这里列出一些常用宏和数学函数,更详细的信息还是需要去查阅<math.h>头文件。
数学常量:
#define M_E 2.71828182845904523536028747135266250 // e
#define M_LOG2E 1.44269504088896340735992468100189214 // log 2e
#define M_LOG10E 0.434294481903251827651128918916605082 // log 10e
#define M_LN2 0.693147180559945309417232121458176568 // log e2
#define M_LN10 2.30258509299404568401799145468436421 // log e10
#define M_PI 3.14159265358979323846264338327950288 // pi
#define M_PI_2 1.57079632679489661923132169163975144 // pi/2
#define M_PI_4 0.785398163397448309615660845819875721 // pi/4
#define M_1_PI 0.318309886183790671537767526745028724 // 1/pi
#define M_2_PI 0.636619772367581343075535053490057448 // 2/pi
#define M_2_SQRTPI 1.12837916709551257389615890312154517 // 2/sqrt(pi)
#define M_SQRT2 1.41421356237309504880168872420969808 // sqrt(2)
#define M_SQRT1_2 0.707106781186547524400844362104849039 // 1/sqrt(2)
常用函数:
//指数运算
NSLog(@"%.f", pow(3,2) ); //result 9
NSLog(@"%.f", pow(3,3) ); //result 27
//开平方运算
NSLog(@"%.f", sqrt(16) ); //result 4
NSLog(@"%.f", sqrt(81) ); //result 9
//上舍入
NSLog(@"res: %.f", ceil(3.000000000001)); //result 4
NSLog(@"res: %.f", ceil(3.00)); //result 3
//下舍入
NSLog(@"res: %.f", floor(3.000000000001)); //result 3
NSLog(@"res: %.f", floor(3.9999999)); //result 3
//四舍五入
NSLog(@"res: %.f", round(3.5)); //result 4
NSLog(@"res: %.f", round(3.46)); //result 3
NSLog(@"res: %.f", round(-3.5)); //NB: this one returns -4
//最小值
NSLog(@"res: %.f", fmin(5,10)); //result 5
//最大值
NSLog(@"res: %.f", fmax(5,10)); //result 10
//绝对值
NSLog(@"res: %.f", fabs(10)); //result 10
NSLog(@"res: %.f", fabs(-10)); //result 10
这里没有列出的三角函数也是属于C标准数学函数的一部分,也可以在<math.h>中查阅。
最新文章
- 机器学习实战笔记(Python实现)-06-AdaBoost
- JSP+Servlet+javabean+mysql实现页面多条件模糊查询
- iptables之链之间的跳转
- powerdesigner 绘制表关系和导出sql
- postgresql 索引
- WinCE启动次数的记录
- 利用Modbus协议读取电能表的数据
- 连接远程LINUX服务器
- 别再说&ldquo;我已经努力了&rdquo;,你的&ldquo;努力&rdquo;一文不值!
- 《Java并发编程实战》第六章 任务运行 读书笔记
- ROS Node/Topic/Message/Service的一些问题
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
- jmetter的http请求设置
- java频繁new对象的优化方案
- Jeecg-Boot Spring Boot
- 在windows 上自动重启 tomcat 的方法
- 第三方apk内置因签名导致SystemUI未启动启动问题案例分析
- VM浏览器不能访问
- 【iCore1S 双核心板_FPGA】例程六:状态机实验——状态机使用
- 6、二、App Components(应用程序组件):1、Intents and Intent Filters(意图和意图过滤器)
热门文章
- C++入门经典-例3.2-根据分数判断是否优秀
- 在MVC项目中使用Ninject
- 7. 进行图片的数据补全和增强(随机亮度,随机饱和度,随机翻转) Image.open(进行图片的读入) 2.ImageEnhance.Brightness(亮度变化) 3.ImageEnhance.Contrast(饱和度变化) 4.enhance_image.transpose(图片随机翻转) 5.enhance_image.save(进行图片保存)
- 统计学_Wilcoxon signed-rank test(python脚本)
- 有关二次离线和 Yuno loves sqrt technology II
- java游戏服务器--简单工厂模式
- Spring Boot 自定义注册 Servlet、Filter、Listener
- 基于Opencv的自适应中值滤波函数selfAdaptiveMedianBlur()
- C++随笔(1)——关于C++11中的线程创建,join和detach
- cf1151e number of components