非常に大きい数または非常に小さい数を科学的記数法として条件付きで表示するには、NSNumberFormatterが必要です。ただし、数値を表示せずに表示できる場合は、小数のみである必要があります。6.62e-34は問題ありませんが、4,2E1は問題ありません。
システムの他の場所で、次の方法を使用してこれを解決しました。
- (NSString *) formatNumber: (double) d {
BOOL sci=NO;
double dd = d;
if (dd<0.0) dd=(-d);
if ((dd>0.0) && (dd<1e-3)) sci=YES;
if (dd>1e+8) sci=YES;
if (sci) [nf setNumberStyle:NSNumberFormatterScientificStyle];
else [nf setNumberStyle:NSNumberFormatterDecimalStyle];
return [nf stringFromNumber:[NSNumber numberWithDouble:d]];
}
しかし、この特定の場所では、すべてがInterface Builderでセットアップされ、管理対象オブジェクトmodellにバインドされ、配列コントローラーオブジェクトが使用されます。テーブルビューの列の最初のテキストセルで、numberformatterをドラッグしました。このNumberFormatterを使用する代わりに、フォーマットを実行するために呼び出されるカスタムメソッドを定義できるかどうかはわかりません。持ち去ると、実行時にエラーが発生します。
誰かが何か考えを持っていますか?