【问题标题】:Round a float up to the next integer in objective C?将浮点数四舍五入到目标C中的下一个整数?
【发布时间】:2012-01-02 15:01:32
【问题描述】:

如何将浮点数四舍五入到目标 C 中的下一个整数值?

1.1 -> 2
2.3 -> 3
3.4 -> 4
3.5 -> 4
3.6 -> 4
1.0000000001 -> 2

【问题讨论】:

    标签: objective-c floating-point int


    【解决方案1】:

    Roundup StringFloat 备注(这不是最好的方法
    语言 - Swift & Objective C | xCode - 9.1
    我所做的是转换 string > float > ceil > int > Float > String
    字符串浮点数 10.8 -> 11.0
    字符串浮点数 10.4 -> 10.0

    斯威夫特

    var AmountToCash1 = "7350.81079101"
    AmountToCash1 = "\(Float(Int(ceil(Float(AmountToCash1)!))))"
    print(AmountToCash1) // 7351.0
    
    
    var AmountToCash2 = "7350.41079101"
    AmountToCash2 = "\(Float(Int(ceil(Float(AmountToCash2)!))))"
    print(AmountToCash2) // 7350.0
    

    目标 C

    NSString *AmountToCash1 = @"7350.81079101";
    AmountToCash1 = [NSString stringWithFormat:@"%f",float(int(ceil(AmountToCash1.floatValue)))];
    

    或者
    你可以像这样
    Swift

    制作一个自定义函数
    func roundupFloatString(value:String)->String{
      var result = ""
      result = "\(Float(Int(ceil(Float(value)!))))"
      return result
    }
    

    这么称呼它

        AmountToCash = self.roundupFloatString(value: AmountToCash)
    

    目标 C

    -(NSString*)roundupFloatString:(NSString *)value{
        NSString *result = @"";
        result = [NSString stringWithFormat:@"%f",float(int(ceil(value.floatValue)))];
      return result;
    }
    

    这么称呼它

        AmountToCash = [self roundupFloatString:AmountToCash];
    

    祝你好运!欢迎!支持我的回答!

    【讨论】:

      【解决方案2】:

      只是无法评论大卫的回答。他的第二个答案不起作用,因为模不适用于浮点值。不应该是这样的

      if (originalFloat - (int)originalFloat > 0) {
          originalFloat += 1;
          round = (int)originalFloat;
      }
      

      【讨论】:

        【解决方案3】:

        使用ceil() 函数。

        有人在此处编写了 Objective C 的一些数学题:http://webbuilders.wordpress.com/2009/04/01/objective-c-math/

        【讨论】:

          【解决方案4】:

          你想要天花板功能。像这样使用:

          float roundedup = ceil(otherfloat);
          

          【讨论】:

          • 这表明我不相信我阅读的第一个文档。你是对的。
          • 注意在函数中放置一个浮点数。 ceil((width/100.) * 7.) 有效。 ceil((width/100) * 7) 不是
          猜你喜欢
          • 2013-06-13
          • 2020-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多