4

在 iPhone 的 Xcode /Objective-C 中。

我有一个值为 0.00004876544 的浮点数。我如何让它在第一个有效数字之后显示到小数点后两位?

例如,0.00004876544 将读取 0.000049。

4

1 回答 1

4

我没有通过编译器运行它来仔细检查它,但这是算法的基本要点(从这个问题的答案转换而来):

-(float) round:(float)num toSignificantFigures:(int)n {
    if(num == 0) {
        return 0;
    }

    double d = ceil(log10(num < 0 ? -num: num));
    int power = n - (int) d;

    double magnitude = pow(10, power);
    long shifted = round(num*magnitude);
    return shifted/magnitude;
}

要记住的重要一点是,Objective-C 是 C 的超集,所以任何在 C 中有效的东西在 Objective-C 中也是有效的。此方法使用定义在math.h.

于 2011-07-19T18:01:57.317 回答