NSNumberFormatterを使用した、より良い方法を次に示します。
まず、次のようにフォーマッタを作成して構成します。
NSNumberFormatter * formatter = [[ NSNumberFormatter alloc ] init ] ;
[ formatter setFormatWidth:20 ] ;
[ formatter setPaddingCharacter:@" " ] ;
[ formatter setFormatterBehavior:NSNumberFormatterBehavior10_4 ] ;
[ formatter setNumberStyle:NSNumberFormatterDecimalStyle ] ;
[ formatter setMinimumFractionDigits:2 ] ;
[ formatter setMaximumFractionDigits:2 ] ;
フォーマッタを作成すると、コードは次のようになります。
strF = [ NSString stringWithFormat:@"First: %@ Second: %@", [ formatter stringFromNumber:value1 ], [ formatter stringFromNumber:value2 ] ] ;
(千の)区切り記号(現在のロケールで)などを取得します。
私はクラスメソッド(+numberFormatter
またはdispatch_once
ブロックのようなもの)でフォーマッタを作成しますカテゴリを介してNSNumberFormatterに追加して、次のようなものを持つこともできます+[ NSNumberFormatter mySharedFormatter ]
フィールド幅指定子を使用できます。これは次のことを行います。
NSString * value1String = ... from NSNumberFormatter to get commas inserted ;
[ NSString stringWithFormat:@"First: %20s Second: %0.2f", [ value1String UTF8String ], value2 ]
「20」は列の幅です。(希望の幅に置き換えます)。右揃えなどの他のオプションがあります。もっとやっman printf
てください。
コンマを追加したい場合は、 NSNumberFormatter でそれができるはずです。
(実際には、おそらく小数も並べたいと思うでしょう?試してみることができます% 20.2f
)