【问题标题】:Rounded up float value ios向上取整浮点值 ios
【发布时间】:2013-01-15 22:23:58
【问题描述】:

在除以 2 (value1 / 2) 后,我有一个值,例如 int value1 = 11,它返回 5。float 中的实际值是 5.5,在这种情况下或其他情况下,谁能帮我返回 6..?一般来说,我想将值四舍五入到下一个更高的值..

【问题讨论】:

标签: objective-c


【解决方案1】:

嗯,通常情况下,您只需添加 1:

int half = (value1+1)/2

所以,你总是会四舍五入。应该是整数最简单的方法。

【讨论】:

  • 这是解决此问题的糟糕方法,但不明白为什么要四舍五入。将来逻辑变化时可能会导致问题。
【解决方案2】:

如果您总是想要四舍五入,并且您有 float 值,请使用 ceilf(来自 <math.h> 库)。

如果您想将整数除以n,请执行(value + n-1) / n。因此,除以 2 时,它变为 (value + 1) / 2

【讨论】:

    【解决方案3】:
    ceil(value1 / 2)
    

    四舍五入到最近的整数

    【讨论】:

    • 它不会四舍五入到最接近的整数。该浮点值的上限。
    • "ciel" 是法语中“天空”的意思。您要查找的函数称为“ceil”。
    【解决方案4】:

    有函数 ceil() 或 ceilf() 将值四舍五入到更高

    您还应该明确地将计算转换为 float/double 以获得值 5.5,该值可以四舍五入到更高。

    ceilf(value1 / 2.0f);
    

    ceilf(1.0f * value1 / 2);
    

    如果你不这样做 - 它可能会在下一个序列中呈现:

    ceilf(11/2) = 
    1) 11/2 = result int = 5
    2) ceilf(5)
    3) 5 ->int implicitly cast to float -> 5.0f
    4) result 5.0f
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      相关资源
      最近更新 更多