在iOS 开发中我们很多情况需要对小数点进行处理,一般情况下四舍五入就可以,但是有些地方需要只舍不入,或者只入不舍。
1下面我们先看只舍不入:
比如 float x=0.667,我们想保留两位小数但不进位,目标值为0.66,我们使用如下方法:
-(NSString *)notRounding:(float)num afterPoint:(int)position{
NSDecimalNumberHandler* roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:position raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *ouncesDecimal;
NSDecimalNumber *roundedOunces;
ouncesDecimal = [[NSDecimalNumber alloc] initWithFloat:num];
roundedOunces = [ouncesDecimal decimalNumberByRoundingAccordingToBehavior:roundingBehavior];
return [NSString stringWithFormat:@"%@",roundedOunces];
}
其中num 是待处理数字,postion是保留的位数。
floa x=0.667;
NSString *lastNum = [self notRounding:x afterPoint:2];
得到结果lastNum=0.66;
2只入不舍:
round(12345.6789*100)/100 结果为:12345.68
参考资料:http://blog.sina.com.cn/s/blog_71715bf801017nyw.html