iOS --- 数学函数 Math Functions

iOS常用数学函数(公式) iOS数学公式都定义在文件中,一般情况下不需要单独引入即可调用相关的数学函数。一般情况下,同一个数学函数有多个,根据需要选择,有些是重载的,有些是xxx和xxx2这样的形式。 阅读详情




iOS_数学函数Math Functions


floor/ceil/round  向下取整/向上取整/四舍五入



取整实例1:

double d1 =10.12, d2 = 10.88;

    float f1 =10.19893, f2 = 10.77;

    DLog(@"floor_d = %f, floor_f = %f, ceil_d = %f, ceil_f = %f, round_d = %f, round_f = %f", floor(d1), floorf(f1), ceil(d1), ceilf(f1), round(d1), roundf(f1));

    //输出  floor_d = 10.000000, floor_f = 10.000000, ceil_d = 11.000000, ceil_f = 11.000000, round_d = 10.000000, round_f = 10.000000


    DLog(@"floor_d2 = %f, floor_f2 = %f, ceil_d2 = %f, ceil_f2 = %f, round_d2 = %f, round_f2 = %f", floor(d2), floorf(f2), ceil(d2), ceilf(f2), round(d2), roundf(f2));

    //输出  floor_d2 = 10.000000, floor_f2 = 10.000000, ceil_d2 = 11.000000, ceil_f2 = 11.000000, round_d2 = 11.000000, round_f2 = 11.000000



//取整与取余

float f1 =0.0;

    DLog(@"8.99的小数部分:modff(2.0, &f1) = %.2f, 整数部分:f1 = %.2f",modff(8.99, &f1), f1);  

    //输出  8.99的小数部分:modff(2.0, &f1) = 0.99,  整数部分:f1 = 8.00


DLog(@"fmodf(9.0, 2.0) = %f,  fmodf(10.0, 2.0) = %f", fmodf(9.0,2.0), fmodf(10.0,2.0));  取余

    //输出  fmodf(9.0, 2.0) = 1.000000,  fmodf(10.0, 2.0) = 0.000000  


三角函数: 

    float f1 =10.19893;

DLog(@"acosf = %f, asinf = %f, atanf = %f", acosf(f1), asinf(f1), atanf(f1));

    //输出  acosf = nan, asinf = nan, atanf = 1.473059

    DLog(@"cosf = %f, sinf = %f, tanf = %f", cosf(f1), sinf(f1), tanf(f1));

    //输出  cosf = -0.715014, sinf = -0.699110, tanf = 0.977757

    DLog(@"acoshf = %f, asinhf = %f, atanhf = %f", acoshf(f1), asinhf(f1), atanhf(f1));

    //输出  acoshf = 3.013018, asinhf = 3.017825, atanhf = nan



对数与指数

float f1 =100.0, f2 = 4.0;

    DLog(@"对数: logf(100) = %f, log10f(100) = %f, log2f(4) = %f", logf(f1), log10f(f1), log2f(f2));

    //输出 对数: logf(100) = 4.605170, log10f(100) = 2.000000, log2f(4) = 2.000000


DLog(@"指数: pow(2, 3) = %f", pow(2, 3));

    //输出 指数: pow(2, 3) = 8.000000


    DLog(@"开平方:sqrt(100) = %f", sqrt(f1));

    //输出 开平方:sqrt(100) = 10.000000


float x =16.4, y;

    int n;

    y = frexpf(x, &n);

    DLog(@"y = frexpf(%f, &n) = %f,    n = %d", x, y, n);

    //输出  y = frexpf(16.400000, &n) = 0.512500,    n = 5

    //即 16.4 = 0.5125 * 2^5


DLog(@"5 * 2^3 = ldexpf(5, 3) = %f",ldexpf(5,3));

    // 5 * 2^3 = ldexpf(5, 3) = 40.000000




/******************************************************************************

 *                                                                            *

 *                              Math Functions                                *

 *                                                                            *

 ******************************************************************************/

    


————————————————————————————————

反三角函数

extern float acosf(float); 

extern double acos(double);

extern longdouble acosl(longdouble);   结果介于[0,PI]

    

extern float asinf(float);  结果介于[-PI/2, PI/2]

extern float atanf(float);     反正切(主值),结果介于[-PI/2, PI/2]

extern float atan2f(float,float);    反正切(整圆值),结果介于[-PI, PI]

    

三角函数

extern float cosf(float);余弦

extern float sinf(float);正弦

extern float tanf(float);正切


双曲三角函数

extern float acoshf(float);双曲反余弦(Hyperbolic arc cosine)函数

extern float asinhf(float);双曲反正弦(Hyperbolic arc sine)函数

extern float atanhf(float);双曲反正切(Hyperbolic arc tangent)函数

extern float coshf(float); 双曲余弦(Hyperbolic cosine)函数

extern float sinhf(float); 双曲正弦(Hyperbolic sine)函数

extern float tanhf(float); 双曲正切(Hyperbolic tangent)函数





————————————————————————————————

指数与对数

extern float expf(float); 求取自然数e的幂

extern float exp2f(float); 计算以2为底的指数

extern float expm1f(float);以 2为底的指数结果再减 1

 

extern float logf(float);以e为底的对数

extern float log10f(float);以10为底的对数

extern float log2f(float);以2为底的对数

extern float log1pf(float);  计算 1与给定值 x 的和(1+x)的自然对数(ln(1+x))

extern float logbf(float);返回以 FLT_RADIX 为底,|x| 的对数值,返回值为浮点数


extern float modff(float,float *);  取整与取余 ,  例,float f1 =0.0; float f2 = modff(8.99, &f1); 结果:f1 = 8   f2 = 0.99

extern float ldexpf(float,int);  计算 参数1乘以2的 参数2次幂    // 5 * 2^3 = ldexpf(5, 3) = 40.000000   

externfloat frexpf(float,int *);把一个浮点数分解为尾数和2为底的指数,   例 16.4 = 0.5125*2^5


extern int ilogbf(float);返回以 FLT_RADIX为底,|x| 的对数值,返回值为整数

extern float scalbnf(float,int); x * FLT_RADIXy

extern float scalblnf(float,long int); 参数1乘以FLT_RADIX的整数幂 x * FLT_RADIXy    

extern float fabsf(float); 绝对值  


extern float cbrtf(float);计算参数的立方根  3√x

extern float hypotf(float,float);  计算两个数平方的和的平方根(√x2+y2)(求直角三角形的斜边长度)

extern float powf(float,float); 计算以m为底数的n次幂,  powf(m, n)

extern float sqrtf(float); 开平方


extern float erff(float);返回x的高斯误差函数

extern float erfcf(float); 返回x的补余高斯误差函数



/* lgammaf, lgamma, and lgammal are not thread-safe. The thread-safe

    variants lgammaf_r, lgamma_r, and lgammal_r are made available if

    you define the _REENTRANT symbol before including <math.h>                */

extern float lgammaf(float);γ 函数的自然对数

extern float tgammaf(float);γ 函数 (伽玛函数)





————————————————————————————————

浮点数的最近整数操作

extern float ceilf(float); 向上取整

extern float floorf(float); 向下取整

externfloat nearbyintf(float);通过使用当前舍入方向,舍入参数为浮点格式的一个整数值,整数。返回舍入的整数值。

extern float rintf(float);四舍五入

extern longint lrintf(float);四舍五入

extern float roundf(float);四舍五入

extern longint lroundf(float);四舍五入


    


/*  long long is not part of C90. Make sure you are passing -std=c99 or

    -std=gnu99 or higher if you need these functions returning long longs     */

#if !(__DARWIN_NO_LONG_LONG)

extern longlong int llrintf(float);

extern longlong int llroundf(float);


#endif /* !(__DARWIN_NO_LONG_LONG) */




extern float truncf(float);幅度(到 0的距离,即绝对值)不大于给定值的最近整数

extern float fmodf(float,float);  获得浮点数除法操作的余数

extern float remainderf(float,float); 获得浮点数除法操作的带符号余数

extern float remquof(float,float, int *); 获得浮点数除法操作的带符号余数,且返回符号及操作结果的最后三位组成的整数

externfloat copysignf(float,float);用参数1的大小和参数2的符号来返回值 //输出   copysignf(2.5, -1.0) = -2.500000,  copysignf(4.0, 3) = 4.000000



extern float nanf(constchar *); 将执行时定义的字符串作为静态化非数型(Quiet NaN)操作所需的值 



extern float nextafterf(float,float); 返回x之后y方向上的下一个可描述(Representable)值

extern double nexttoward(double,long double);返回 x 之后y 方向上的下一个可描述值


externfloat fdimf(float,float);计算两参数之间正整数差异//输出   fdimf(2.5, 3.7) = 0.000000,  fdimf(5.4, 2.2) = 3.200000

extern float fmaxf(float,float);  求最大值

extern float fminf(float,float);  求最小值

extern float fmaf(float,float, float);乘累加(Multiply-add)



#define isgreater(x, y) __builtin_isgreater((x),(y))

#define isgreaterequal(x, y) __builtin_isgreaterequal((x),(y))

#define isless(x, y) __builtin_isless((x),(y))

#define islessequal(x, y) __builtin_islessequal((x),(y))

#define islessgreater(x, y) __builtin_islessgreater((x),(y))

#define isunordered(x, y) __builtin_isunordered((x),(y))


/* Legacy BSD API: please use C99 INFINITY macro instead.                     */

extern float __inff(void)__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

extern double __inf(void)__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

extern longdouble __infl(void)__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

/* Implementation detail; please use the standard C NAN macro instead.        */

extern float __nan(void)__OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA);



参考:http://classfoo.com/ccby/article/hoTQby

http://www.cnblogs.com/zhao-jie-li/p/5559600.html

https://msdn.microsoft.com/zh-cn/library

HMMER实战:从零部署到序列分析 本文详细介绍了HMMER工具的安装与使用,从源码编译到环境配置,再到核心工具hmmbuild、hmmsearch等的实战应用。通过球蛋白序列分析案例,展示了HMMER在生物信息学中的强大功能,帮助读者快速掌握序列分析技巧。 阅读详情

相关推荐

Amesim基础篇-热仿真常用模型库-Thermal Hydraulic /Resistance

流体库、管路库在热管理中是必备模块,如动力电池液冷循环系统均需要Thermal Hydraulic /Resistance库的元件建模。

2201_75375391的博客 5661

iOS中常见的几种函数(向上,向下,四舍五入)

针对于iOS中的一些数学函数,我们有时会根据不同的需求需要不同的数值哦。 (1)向下取整 floor函数 如: floor(5.3) == 5,floor(5.7)== 5 (2)向上取整 ceil函数  如:ceil(5.4)== 6, ceil(5.8)== 6 (3)四舍五入 round函数 如:round(5.3)== 5, round(5.6)== 6

Hibiscus_blog的博客 655

WPS和Excel通用!省市区四级联动下拉菜单保姆级教程(附最新行政区划数据包)

本文详细介绍了在WPS和Excel中实现省市区四级联动下拉菜单的完整教程,包含2024年最新行政区划数据的获取与整理方法。通过名称管理器和INDIRECT函数的组合,以及WPS的特色功能,帮助用户高效准确地录入四级行政区划信息,提升数据录入效率并减少错误。

s1t2u3的博客 609

iOS 取整函数(四舍五入取整,向上向下取整,取最近整数)

取整用的函数主要在usr/include > math.h内。

RollingPin的博客 2804

【iceberg数据一致性】iceberg如何保证高并发数据一致性

那么在高并发的时候,同时操作某张表时是如何运作的呢?其实这里iceberg引用了乐观锁的方法。其实在写入数据的时候是有一个验证的操作的,即在准备写入时会检查原文件和带写入文件的差异,如果存在本次写入数据以外的数据,则代表有其他操作已经更新了原文件,那么本次写入会取消,并重试写入的步骤,知道验证完成,写入完成,如此就保证了数据的一致性,并且也解决了HMS锁的问题。在使用iceberg写数据时,一直弄不清楚为什么iceberg写入快,并且能够保证数据的一致性。今天决定搞清楚这个问题,经过查询和理解,写下来。

你的博客 1042

Simulink仿真避坑指南:如何设置步长、powergui和模块采样时间才能让控制周期更稳定

本文深入解析Simulink仿真中步长、powergui和模块采样时间的协同配置方法,帮助工程师解决控制周期不稳定问题。通过实际案例和参数调优技巧,指导用户精准设置仿真参数,确保电机控制、电力电子系统等工业仿真结果的可靠性。

weixin_42524762的博客 417

IOS中的数学函数使用

fmodf(A, B)

dlm_211314的专栏 881

速腾R128雷达+海康全景相机ROS数据采集避坑实录:从‘雷达不转’到MATLAB标定的完整流程

本文详细记录了速腾R128激光雷达与海康威视全景相机在ROS环境下的数据采集与MATLAB标定全流程。从硬件配置的常见陷阱(如雷达旋转参数设置)、驱动编译的依赖管理,到多传感器同步的实战技巧和MATLAB标定方法,提供了完整的避坑指南和技术方案。特别针对RoboSense R128雷达和海康相机的特殊需求给出了具体解决方案。

weixin_28717807的博客 1218

iOS小数取整(ceil,round,floor)方法

round:如果参数是小数,则求本身的四舍五入。 ceil:如果参数是小数,则求大于本身的最小整数. floor:如果参数是小数,则求小于本身最大整数. 例如: float a = 32.56; 那么: roundf(a) = 33.000000 ceilf(a) = 33.000000 floorf(a) = 32.000000

riven007的博客 1万+

QGroundControl高级配置与自定义功能实战指南

本文深入探讨了QGroundControl(QGC)的高级配置与自定义功能,为无人机开发者、系统集成商和高级用户提供实战指南。内容涵盖从品牌界面定制、自定义MAVLink消息处理,到插件开发与自动化部署的全流程,旨在帮助用户解锁QGC的隐藏潜力,打造专属的行业解决方案。

weixin_29234509的博客 239

华为云Stack交付实战:从工勘到上线的全流程拆解

本文详细拆解华为云Stack交付全流程,从项目启动、工勘、LLD设计到硬件部署和软件安装,提供实战技巧与避坑指南。重点解析华为云Stack交付流程中的关键环节,如标准化工具使用、规范化文档管理和流程化协作,帮助团队高效完成从工勘到上线的复杂项目交付。

weixin_29243063的博客 155

iOS_数学函数Math Functions(计算,取整,平方立方,等等)

转自:http://blog.youkuaiyun.com/ios_ping/article/details/53694132 iOS_数学函数Math Functions floor/ceil/round  向下取整/向上取整/四舍五入 取整实例1: double d1 =10.12, d2 = 10.88;     

zhanglizhi111的博客 7493

OpenMM | PDBFixer 用于蛋白质预处理

PDBFixer 用于蛋白质预处理

DrugOne 3004

cann/asc-devkit SIMT API数学函数

| 产品 | 是否支持 | | --- | --- | | Ascend 950PR/Ascend 950DT | √ | | Atlas A3 训练系列产品/Atlas A3 推理系列产品 | x | | Atlas A2 训练系列产品/Atlas A2 推理系列产品 | x | | Atlas 200I/500 A2 推理产品 | x | | Atlas 推理系列产品AI Core | x |

gitblog_07628的博客 428

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

22T token的秘密:LFM3-1.7B-Base五阶段预训练配方全揭秘(15T主训练→3T代码数学→3T智能体mid-training→256K扩展)

LFM3-1.7B-Base 是 Liquid AI 推出的 1.7B 参数预训练文本模型底座,用满 22T token 完成了完整的五阶段预训练配方:约 15T 网页与合成数据主训练、3T 代码数学科学强化、3T 智能体 mid-training,最后分两步把上下文窗口扩展到 256K。本文带你像读食谱一样,把这五步逐个拆开看。 ## LFM3-1.7B-Base 是什么:为端侧智能体而生的预

gitblog_00049的博客 119

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Electronics-eCommerce-Shop-With-Admin-Dashboard-NextJS-NodeJS完全指南:免费开源Next.js+Node.js全栈电商商城如何快速跑起来

Electronics-eCommerce-Shop-With-Admin-Dashboard-NextJS-NodeJS 是一个**免费开源**的 Next.js + Node.js 全栈电商商城项目(名为 Singitronic),内置完整管理后台,基于 MySQL 数据库,支持商品管理、购物车、下单、收藏、用户管理等电商核心功能。本指南面向新手,教你用最少的步骤把这个全栈电商网站跑起来,并看

gitblog_01024的博客 291

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

go-openapi/jsonpointer:JSON Pointer 规范的 Go 语言实现全解析

本文以 DevSpace 仓库中 vendored 的第三方依赖 [go-openapi/jsonpointer](https://link.gitcode.com/i/f1f0e55c1aeaa0ee222009b1bbbb2c53) 为研究对象,完整梳理 JSON Pointer(RFC 6901 前身 draft-ietf-appsawg-json-pointer-07)的核心语法与评估规则

gitblog_00498的博客 1036

UTM 虚拟机:在 Mac 与 iPhone 上运行 Windows、Linux 的完整指南

UTM 虚拟机是一款基于 QEMU 的虚拟化与系统模拟工具,面向 iOS、macOS 与 visionOS 三个平台,可在 Mac、iPhone 和 iPad 上运行 Windows、各类 Linux 发行版乃至 macOS 客机系统。它把 QEMU 的模拟能力封装成一套 SwiftUI 应用,普通用户不需要了解底层参数,也能完成从导入镜像到开机安装的完整流程。 ## 一、虚拟机为什么在 iPh

gitblog_00012的博客 421

FPGA上用CORDIC向量模式实现定点arctan

arctan是信号处理、电机控制和雷达系统中关键的角度解算函数,其硬件实现需兼顾实时性、资源效率与定点精度。CORDIC算法凭借纯加减与移位运算的特性,成为FPGA上替代浮点IP或查表法的主流方案;其中向量模式专为arctan(y/x)设计,通过迭代归零y分量并累加旋转角,天然适配定点Q格式运算。相比旋转模式,它避免初始向量误设与增益系数混淆,确保角度输出无系统偏差。在Cyclone IV等中低端FPGA上,16级迭代的CORDIC arctan仅占42个LE,延迟固定16周期,支持100MHz吞吐,可无缝

weixin_34127717的博客 288

Emscripten 编译器设置全指南:-s 选项参考与源码级解析

本文基于 Emscripten 官方文档《Emscripten Compiler Settings》([settings_reference.rst](https://link.gitcode.com/i/b05f62168f443c21c8834b5c3cccd9f0)),系统讲解如何通过 `-sOPTION[=VALUE]` 命令行参数控制 Emscripten 编译与链接的每一项行为,涵盖内

gitblog_01129的博客 502

Flecs 构建实战指南:从 distr 单文件集成到源码级定制构建(C/C++ ECS)

Flecs 是一个用 C99 编写、同时提供 C++17 API 的高性能实体组件系统(ECS)。本指南以仓库中的 [docs/BuildingFlecs.md](https://link.gitcode.com/i/58261ad39d9690f195af738dba17df13) 为核心骨架,系统讲解 Flecs 的三种主流构建方式——直接用 `distr` 单文件集成、通过 CMake/Me

gitblog_00674的博客 287

iOS开发-math.h/ceil/floor/round

math.h头文件库函数的介绍 1、每一个函数都能接受定义域内的所有参数值,对于其他所有的参数都报告定义域错误。发生定义域错误时,errno设置为EDOM。 2、如果输入的不是数字,那么函数返回一个表示非数字的特殊编码NaN(即Not a number)。 3、对于一个输入的具体的值,函数产生一个确定的结果。 4、对于所有的结果的值太小或者太大而不能表示的值,函数报告值域错误。 5、如果函数产生...

chenzimin_blog 678

[iOS]计算函数

绝对值 int abs(int i); // 处理int类型的取绝对值 double fabs(double i); // 处理double类型的取绝对值 float fabsf(float i); // 处理float类型的取绝对值 两点之间的距离 // 计算两点之间的距离 - (float)calculateDistanceWithPointOne:(CGPoint)pointOne PointTwo:(CGPoint)pointTwo { CGFloat xDi

Gamin 729

iOS 向下取整、向上取整、四舍五入

向上取整:float ceilf(float); double ceil(double); 向下取整:float floorf(float); double floor(double); 四舍五入:float roundf(float); double round(double); CGFloat a = 3.3; CGFloat ceilA = ceilf...

weixin_30929195的博客 311

iOS 向上取整或向下取整以及常用的数学函数

2.高斯函数,向下取整 floor(1.0/4)=0;floor(4.0/4)=1;floor(5.0/4)=1;floor(8.0/4)=2; floor()方法是向下取整,类似于数学中的高斯函数 [].取得不大于浮点数的最大整数,对于正数来说是舍弃浮点数部分,对于复数来说,舍弃浮点数部分后再减1. 3.ceil函数,向上取整。 如: ceil(1.0/4)=1; ceil(

清秋锁梦的博客 4716

iOS 常用浮点数精度计算、取舍、四舍五入

iOS 常用的向上取整,向下取证,四舍五入函数。x为我们要计算的数字。 第一个:向上取整:ceil(x),返回不小于x的最小整数; //例如:1.234, 运算完以后,结果等于:2 如果想要 1.234 变成 1.24,我们可以这么做     ceil(1.23 * 100)/100    floor同理 第二个:向下取整:floor(x),返回不大于x的最大整数; //例

WangQingLei0307的博客 1673
上一篇: iOS_Bug收集(一)
下一篇: Objective-C 属性
平子~~
博客等级 码龄12年 7粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值