用有效数字四舍五入



在Xcode/Objective-C for iPhone。

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

例如,0.00004876544将读取0.000049

我没有通过编译器来检查它,但这里是算法的基本列表(从答案转换为这个问题):

-(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中定义的C函数。

最新更新