here is the code
/**
基础计算 截取指定小数位数 时间耗时较少
*/
+ (NSString *)getRoundFloat:(double)floatNumber withPrecisionNum:(NSInteger)precision {
// 0.123456789 精度2
//core foundation 的当前确切时间
CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
//精度要求为2,算出 10的2次方,也就是100,让小数点右移两位,让原始小数扩大100倍
double fact = pow(10,precision);//face = 100
//让小数扩大100倍,四舍五入后面的位数,再缩小100倍,这样成功的进行指定精度的四舍五入
double result = round(fact * floatNumber) / fact; // result = 0.12
//组合成字符串 @"%.3f" 想要打印百分号%字符串 需要在前面加一个百分号 表示不转译
NSString *proString = [NSString stringWithFormat:@"%%.%ldf",(long)precision]; //proString = @"%.2f"
// 默认会显示6位 多余的n补0,所以需要指定显示多少小数位 @"%.2f" 0.123000
NSString *resultString = [NSString stringWithFormat:proString,result];
//time实际上是一个double
CFAbsoluteTime end = CFAbsoluteTimeGetCurrent();
NSLog(@"time cost: %0.6f", end - start);
return resultString;
}
网友评论