码迷,mamicode.com
首页 > 编程语言 > 详细

综合网上的各种不靠谱的算法,自己写的四舍五入方法

时间:2015-06-10 01:26:24      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:四舍五入

//单元测试通过
/**
 *   四舍五入并保留N位小数
 *
 *  @param number    数值字符串
 *  @param afterPoint 第几位小数
 *
 *  @return 处理后结果
 */
+(NSString *)halfUpDecimalNumber:(NSString *)number afterPoint:(int)position
{
    /*
     Mode的枚举类型
     NSRoundPlain, // 四舍五入
     NSRoundDown, // 只舍不入
     NSRoundUp, // 不舍只入
     NSRoundBankers //
     */
    if ([number length]==0) {
        return @"";
    }

    NSDecimalNumber *ouncesDecimal = [NSDecimalNumber decimalNumberWithString:number];
    NSString *formatStr=@"0.";
    for (int i=0; i<position; i++) {
        formatStr=[formatStr stringByAppendingString:@"0"];
    }

    NSNumberFormatter *doubleValueWithMaxTwoDecimalPlaces = [[NSNumberFormatter alloc] init];
    [doubleValueWithMaxTwoDecimalPlaces setNumberStyle:NSNumberFormatterDecimalStyle];
    [doubleValueWithMaxTwoDecimalPlaces setPaddingCharacter:@""];
    [doubleValueWithMaxTwoDecimalPlaces setPaddingPosition:NSNumberFormatterPadAfterSuffix];
    [doubleValueWithMaxTwoDecimalPlaces setFormatWidth:position];
    [doubleValueWithMaxTwoDecimalPlaces setPerMillSymbol:@""];
    [doubleValueWithMaxTwoDecimalPlaces setAlwaysShowsDecimalSeparator:YES];
    [doubleValueWithMaxTwoDecimalPlaces setGroupingSeparator:@""];
    [doubleValueWithMaxTwoDecimalPlaces setRoundingMode:NSNumberFormatterRoundHalfUp];
    [doubleValueWithMaxTwoDecimalPlaces setPositiveFormat:formatStr];
    return  [doubleValueWithMaxTwoDecimalPlaces stringFromNumber:ouncesDecimal];

}


综合网上的各种不靠谱的算法,自己写的四舍五入方法

标签:四舍五入

原文地址:http://38734603.blog.51cto.com/7240279/1660173

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!