0

目的 c で科学表記法を使用し、有効数字 3 桁のみを表示する方法はありますか? 私が現在使用しているのは次のとおりです。

string = [NSString stringWithFormat:@"%e", floatNumber];
// floatNumber = 100000; string = 1.000000e+06

string = 1.00e+06 が欲しいだけです

4

1 に答える 1

2

次のように、フォーマット指定子「.2」を使用します。

    string = [NSString stringWithFormat:@"%.2e", floatNumber];

アップルのドキュメントから:

NSString フォーマット メソッドと CFString フォーマット関数でサポートされるフォーマット指定子は、IEEE printf 仕様に従います...

また、IEEE printf 仕様の説明セクションを読むと、次のことがわかります。

え、え

double 引数は、スタイル "[-]d.ddde±dd" で変換されます。ここで、基数文字 (引数がゼロ以外の場合はゼロ以外) の前に 1 桁があり、その後に桁数があります。精度に等しい。精度が欠落している場合は、6 と見なされます。精度がゼロで「#」フラグが存在しない場合、基数文字は表示されません。下位桁は、実装定義の方法で丸められます。E 変換指定子は、指数を導入する 'e' の代わりに 'E' を使用して数値を生成します。指数には常に少なくとも 2 桁が含まれます。値がゼロの場合、指数はゼロになります。

于 2013-09-04T02:44:16.447 に答える