Objective-Cで数値から文字列への変換、文字列から数値への変換
整数を文字列へ
int x = 100;
NSString *str = [NSString stringWithFormat:@"%d", x];
実数を文字列へ
float x = 1.2345f;
// 小数点以下2桁まで
NSString *str1 = [NSString stringWithFormat:@"%.2f", x]; // 1.23
// 3桁
NSString *str2 = [NSString stringWithFormat:@"%.3f", x]; // 1.235(四捨五入される)
// 5桁
NSString *str3 = [NSString stringWithFormat:@"%.5f", x]; // 1.23450(0埋めされる)
// 桁数指定なし
NSString *str4 = [NSString stringWithFormat:@"%f", x]; // 1.234500(小数点以下6桁まで?)double y = 1.23456789;
// 桁数指定なし
NSString *str5 = [NSString stringWithFormat:@"%f", y]; // 1.234568(小数点以下6桁まで?)
// e を使った表記
NSString *str6 = [NSString stringWithFormat:@"%e", y]; // 1.234568e+00
うーん、何だかめんどい。。。
そして、計算機みたいに小数以下の桁数を動的に変えるにはどうすれば?
どうやら%gでよさげ。
NSString *str7 = [NSString stringWithFormat:@"%g", x]; // 1.2345
NSString *str8 = [NSString stringWithFormat:@"%g", y]; // 1.23457
あれ?str8はstr6と同じになると思ったんだけど?よく分からないです。。。
ちなみに、書式の一覧はstringWithFormatのリファレンスからString Format Specifiersへのリンクを辿れば見られます。
日本語で説明してくれてる方もいらっしゃいます。
http://d.hatena.ne.jp/nakamura001/20080912/1221229442
http://ameblo.jp/semodoki/entry-10461821084.html
文字列から数値へ
NSString *str = @"1.23456789";
int x = [str intValue];
float y = [str floatValue];
double z = [str doubleValue];
これで間違ってないよな。。。寝よう。