iOS 如何四舍五入

来源:互联网 发布:全国城市 首字母 json 编辑:程序博客网 时间:2024/04/28 23:26

可以利用Frameworks Foundation中NSDecimalNumber 实现

 -(NSString *)notRounding:(float)price 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:price];    roundedOunces = [ouncesDecimal decimalNumberByRoundingAccordingToBehavior:roundingBehavior];    [ouncesDecimal release];    return [NSString stringWithFormat:@"%@",roundedOunces];}

参数介绍
price:需要处理的数字,

position:保留小数点第几位,

然后调用

float s =0.126;NSString *sv = [self notRounding:s afterPoint:2];NSLog(@"sv = %@",sv);

输出结果为:sv = 0.12

接下来介绍NSDecimalNumberHandler初始化时的关键参数:decimalNumberHandlerWithRoundingMode:NSRoundDown,

NSRoundDown代表的就是 只舍不入。

scale的参数position代表保留小数点后几位。

如果只入不舍怎么办,比如,float 0.162 想要得到0.17该怎么做?,在开发文档上有这样一个表,是按照保留小数点后一位处理的。相信大家一看就明白了:这里写图片描述

0 0
原创粉丝点击