【问题标题】:How can I round down a float?如何舍入一个浮点数?
【发布时间】:2010-11-02 05:04:10
【问题描述】:

为了以后的计算,我需要以某种方式将浮点值向下舍入,精度为小数点后两位。

例如,如果我有 0.1098,我需要它变成 0.10,如果我有 0.1176,我需要它变成 0.11。

我想我几乎需要将浮点数截断到小数点后 2 位

【问题讨论】:

    标签: iphone objective-c iphone-sdk-3.0 ios4


    【解决方案1】:

    通常在将其转换为字符串时进行四舍五入,因为二进制浮点数不能总是准确地表示 2 个十进制数字。要获得 2 位数的 NSString,请使用

    [NSString stringWithFormat:@"%.02f", num];
    

    如果您真的想要截断为浮点数以进行进一步计算,请使用类似

    ((int)(num * 100)) / 100.0
    

    如果你想舍入而不是截断

    ((int)(num * 100 + 0.5)) / 100.0
    

    【讨论】:

    • 该死的,这么快就回答了!顺便说一句,这是正确的答案。
    • 除非他想向下取整而不向上取整,所以不要加 .5
    • 好吧,我需要将该浮点值传递给一个函数(这是 NSTimer 的时间间隔),所以我是否可以通过调用 [myString doubleValue] 将其转换回双精度值?
    • 没关系,我刚刚注意到您回答的另一部分,谢谢
    猜你喜欢
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多