工作随记

各类型取绝对值

abs(int),

labs(long),

llabs(long long),

imaxabs(intmax_t),

fabsf(float),

fabs(double), or

fabsl(long double).

(Alas, there is no habs(short) function. Or scabs(signed char) for that matter...)



位数判断

//判断位数

int MaxYRange = 0;

NSMutableString *MaxYString = [NSMutableString stringWithFormat:@"%.f",_MaxY];

if ([MaxYString rangeOfString:@"."].location == 1 && [[MaxYString substringWithRange:NSMakeRange(0, 1)] intValue] >= 2) {

//maxy >= 2

MaxYRange = (int)[MaxYString rangeOfString:@"."].location;

}else if([MaxYString rangeOfString:@"."].location == NSNotFound){

//整数

MaxYRange = (int)MaxYString.length;

}

通过转换为字符串后判断小数点位置判断位数



/**

*  取绝对值的上级范围

*

*  @param number 传入的数字

*

*  @return 比传入数字大一的范围

*/

-(float)calculateNumber:(float)number{

float newNumber = ceilf(fabsf(number));//取绝对值,然后向上取整

return newNumber;

}



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; int a; a = ceil(f); NSLog("a = %d",a);

输出结果是2。ceil()方法是向上取整,取得不小于浮点数的最小整数,对于正数来说是舍弃浮点数部分并加1,对于复数来说就是舍弃浮点数部分.

你可能感兴趣的:(工作随记)