0

%g文字列の形式が float で 6 つの数値しか処理できず、その後は科学表記法に変わるのはなぜですか? 形式に似たフロートを表示する他の方法はあり%gますが、6 つ以上の数値を許可しますか?

編集: %g を正確に計算しました。つまり、%g を %.Xg に変換します。ここで、x は指定された有効桁数です。しかし、この状況では役に立ちません:

-(IBAction)numberPressed:(id)sender {
    if (decimalChecker == 1) {

            currentDecimal = currentDecimal*10+ (float)[sender tag];
            decimaledNumberString = [[NSString alloc] initWithFormat:@"%.17g.%.17g", currentNumber, currentDecimal];
        calculatorScreen.text = decimaledNumberString;
        currentDecimaledNumber = [decimaledNumberString floatValue];
        NSLog(@"regular");
            } else {

                    currentNumber = currentNumber*10+ (float)[sender tag];
            calculatorScreen.text = [[NSString alloc] initWithFormat:@"%.17g", currentNumber];
            NSLog(@"regular");
    }
}

55555555 の代わりに "5" を 8 回押すと、55551782 などと表示されます。クレイジーな数ではなく、希望の 8 つの 5 になるように修正するにはどうすればよいですか?

4

2 に答える 2

2

ピリオドと数字を挿入して、表示する最大有効桁数を指定します (有効桁数%.17g17 桁など)。お気づきのとおり、デフォルトは 6 です。

于 2013-06-18T19:22:57.510 に答える
1

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Strings/Articles/FormatStrings.html#//apple_ref/doc/uid/20000943によると、iOS 文字列フォーマットは C と同じプレースホルダーを使用します。 、非指数表現のみを使用しながら、非常に大きい/小さい値の指数表記で FP 値を表すものとして/printf()を指定します。gGf

http://en.wikipedia.org/wiki/Printf_format_string#Format_placeholders

于 2013-06-18T19:18:11.320 に答える