2

私の目的は、iPhone用の顧客計算アプリケーションを作成し、Xcodeを使用してアプリケーションを作成することです。解決策が見つからない私の問題は、科学的記数法または設定された小数を使用せずに数値をフォーマットする方法です。

私は試した...

buttonScreen.text = [NSString stringWithFormat:@"%f",currentNumber];

buttonScreen.text = [NSString stringWithFormat:@"%g",currentNumber];

%fフォーマットでは常に小数点以下6桁が出力されるため、ユーザーが「5」と入力すると5.000000と表示されます。

%gフォーマットは6桁後に科学的記数法にジャンプするため、1000000は表示時に1e+06になります。

無意味な小数や科学的記数法なしで次の数値を表示できるようにしたいと思います。

123,456,789;
1.23456789;
12345.6789;
-123,456,789;
-1.23456789;
-12345.6789;
4

4 に答える 4

2

浮動小数点数のフォーマットには%fを使用でき、最小フィールド幅と文字数の精度を指定する必要があります。%4.2fを使用する場合は、幅が4文字以上(4未満の場合は、左側に空白が表示されます)、精度を上げるために2文字を意味します。最小幅が10文字、小数点以下の精度が0の場合は、%10.0fを使用します。

特定のケースでは、小数点以下の桁数がない場合は%.0fを使用する必要があります。

buttonScreen.text = [NSString stringWithFormat:@"%.0f",currentNumber];

ここでクイックリファレンスを見つけることができます。Objective-cのドキュメントではありませんが、同等です。

完全を期すために、NSStringフォーマットが従う仕様のドキュメントを以下に示します。

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html

そしてここ:

http://pubs.opengroup.org/onlinepubs/009695399/functions/printf.html

切り捨てのための編集:

buttonScreen.text = [NSString stringWithFormat:@"%d",(int)currentNumber];

ただし、フローティング表現、精度、キャストについて少し読んで、望ましくない動作の可能性に注意する必要があります。

于 2013-01-22T02:16:26.427 に答える
2

を見てくださいNSNumberFormatter

正しく構成されていれば、必要に応じてコンマを追加できます。また、使用する有効数字の数も指定する必要があります。

于 2013-01-22T02:17:43.240 に答える
0

ここで疑うほどXcodeやObjective-cを操作していません。基本的な実装は、printfです。printfフォーマット指定子の使用方法については、このチュートリアルを確認してください。

于 2013-01-22T02:14:28.667 に答える
0

それで、あなたはそれをどのように見せたいですか?stringWithFormatフォーマットは、古いCsprintfのスーパーセットです。それで、あなたはあなたの好みに合うようにdとバリエーションを使ってみましたか?

于 2013-01-22T02:15:42.230 に答える