美文网首页
iOS - 数值四舍五入问题

iOS - 数值四舍五入问题

作者: li_礼光 | 来源:发表于2018-05-16 10:08 被阅读31次
    /**
     初始化方法
     
     @param roundingMode 舍入方式
     @param scale 小数点后舍入值的位数。
     @param exact 精度错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
     @param overflow 溢出错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
     @param underflow 下溢错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
     @param divideByZero 除以0的错误处理;YES:如果出现错误,将引发异常,NO:忽略错误并将控制权放回给调用者。
     @return NSDecimalNumberHandler对象
     */
    
      
       NSDecimalNumberHandler *hander = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown
                                                                                               scale:3
                                                                                    raiseOnExactness:NO
                                                                                     raiseOnOverflow:NO
                                                                                    raiseOnUnderflow:NO
                                                                                 raiseOnDivideByZero:NO];
        
        
        NSDecimalNumber *num = [[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",144.99999]] decimalNumberByDividingBy :[NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",100.0]]
                                                                                                                                    withBehavior:hander];
        NSLog(@"num===%@",num);
        
    

    打印结果 : num===1.449

    NSRoundingMode的几种方式:

    • NSRoundPlain:四舍五入
    • NSRoundDown:只舍不入 (金钱类计算)
    • NSRoundUp:只入不舍

    相关文章

      网友评论

          本文标题:iOS - 数值四舍五入问题

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