zoukankan      html  css  js  c++  java
  • IOS开发之----四舍五入问题

    方法一:

     

    -(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该怎么做?。在开发文档上有这样一个表,是依照保留小数点后一位处理的。

    相信大家一看就明确了:

    IOS开发之----四舍五入问题


    方法二:


     

    1round(12345.6789) 结果为:12346

    2round(12345.6789*100)/100 结果为:12345.68

    第二个是我要的结果,可是我不明确这么个简单的四舍五入要搞的这么复杂,应该有更好的吧。我记得在其它语言里用:round(12345.67892) 就能够实现四舍五入到两位小数。


  • 相关阅读:
    sql语句查询结果排序
    Spring MVC 注解
    Spring MVC 编程流程步骤
    菜鸟学自动化测试(一)—-selenium IDE
    list和set的区别
    Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
    是否可以从一个static方法内部发出对非static方法的调用?
    Shiro运行原理?
    shiro有哪些组件?
    简述Shiro的核心组件?
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5118127.html
Copyright © 2011-2022 走看看