浮点数转化整数
Objective-C拓展了C,自然很多用法是和C一致的。比如浮点数转化成整数,就有以下四种情况。
1.简单粗暴,直接转化
float f = 1.5;
int a;a = (int)f;
NSLog("a = %d",a);
输出结果是1。(int)是强制类型转化,丢弃浮点数的小数部分。
2.高斯函数,向下取整
float f =1.6;
int a;
a = floor(f);
NSLog("a = %d",a);
输出结果是1。floor()方法是向下取整,类似于数学中的高斯函数 [].取得不大于浮点数的最大整数,对于正数来说是舍弃浮点数部分,对于复数来说,舍弃浮点数部分后再减1.
3.ceil函数,向上取整。
float f =1.5;
inta;
a = ceil(f);
NSLog("a = %d",a);
输出结果是2。ceil()方法是向上取整,取得不小于浮点数的最小整数,对于正数来说是舍弃浮点数部分并加1,对于复数来说就是舍弃浮点数部分.
4.通过强制类型转换四舍五入。
float f = 1.5;
int a;
a = (int)(f+0.5);
NSLog("a = %d",a);
这三个方法容易混淆:
Math.round:如果参数是小数,则求本身的四舍五入。
Math.ceil:如果参数是小数,则求最小的整数但不小于本身.
Math.floor:如果参数是小数,则求最大的整数但不大于本身.
同时注意他们的返回类型:
long round(double a)
int round(float a)
double ceil(double a)
double floor(double a)
求绝对值函数
浮点型
头文件:#include <math.h>
fabs() 函数用来求浮点数的绝对值。在TC中原型为:
float fabs(float x);
在VC6.0中原型为:
double fabs( double x ); 求绝对值函数
整型
头文件:#include <stdlib.h>
定义函数:int abs (int j);
其中原理非常简单,所以就不做详细说明了。