4

iPhone の Xcode /Objective-C で。

値が 0.00004876544 のフロートがあります。最初の有効数字の後に小数点以下 2 桁まで表示するにはどうすればよいですか?

たとえば、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 でも有効であることです。このメソッドは、 で定義されている C 関数を使用しmath.hます。

于 2011-07-19T18:01:57.317 に答える