2

の先頭にゼロを保持したいのですが、NSIntegerそれNSLogを行うとゼロが削除されます。

NSInteger myInteger = 05;
NSLog("%d", myInteger);

ログ:5

5の代わりに取得し05ます。0整数の先頭を維持するにはどうすればよいですか?

4

4 に答える 4

16

NSIntegerは、「先行ゼロ」を実行しません。あなたは数のフォーマットについて考えています。

「」を介して先行ゼロを出力したいだけの場合はNSLog、次のようにしてみてください。

NSLog( "%02d", myInteger);

これは、NSLogに2桁の数字を指定し、2桁に達しない場合は、先行ゼロを実行するように指示します。

printf形式の指定子(NSLogが準拠しようとしている)を見ると、先行ゼロがどのように追加されているかがわかります。

于 2012-05-28T22:18:26.347 に答える
2

"%d"よくわかりませんが、旗の書き方の問題だと思います。だからあなたはcasを使うNSLog(@"%03d", var);

005を出力します。

于 2012-05-28T22:19:28.413 に答える
1

これは、文字列に対してどのように機能するかです。

INT

String(format: "%05.2f"、5.0)は05.00を出力します

ダブル

String(format: "%02d"、5)は次のように出力します:05

于 2014-02-17T07:32:49.623 に答える
0

ロギングのためだけに必要な場合は、次のようにしてみてください

NSLog(@"0%d" , 5) ;

または、画面に印刷する必要がある場合は、次の形式の文字列に変換します。

NSString *result = [[NSString alloc]initWithFormat:@"0%d" , yourInteger] ;
于 2012-05-28T22:24:59.973 に答える