美文网首页
小数点后两位处理

小数点后两位处理

作者: 随心_追梦 | 来源:发表于2018-09-30 14:13 被阅读0次

好长时间没有写文章了,今天放假,趁着有空,给大家分享个小工具类
一般我们写电商类型App的时候,都有价格小数点后两位的处理,之前我是写的fload类型取 .2f ,后来测试,会有精度问题,所以总结了下面的方法。

我写了一个字符串的扩展,方法如下:
///字符串小数点后两位
- (NSString *)geTwoDecimalString {
    
    NSArray *arr = [self componentsSeparatedByString:@"."];
    if (arr.count == 1) {
        return [NSString stringWithFormat:@"%@.00",self];
    }
    if (arr.count > 2) {
        return self;
    }
    
    NSString *str = [arr lastObject];
    if (str.length == 1) {
        return [NSString stringWithFormat:@"%@0",self];
    }
    
    else if (str.length == 2) {
        return self;
    }
    else {
        NSDecimalNumberHandler *roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
        NSDecimalNumber *aDN = [[NSDecimalNumber alloc] initWithString:self];
        NSDecimalNumber *resultDN = [aDN decimalNumberByRoundingAccordingToBehavior:roundingBehavior];
        return [NSString stringWithFormat:@"%@",resultDN];
    }
}

欢迎大家指教!!!

相关文章

网友评论

      本文标题:小数点后两位处理

      本文链接:https://www.haomeiwen.com/subject/svdwoftx.html