iOS SDKメモ 実数の小数以下0を取り除いてNSStringに変換してみる

iPad,プログラミング

double型やらfloat型をそのまんまNSString型に変換すると小数点以下の0まで文字列に変換されちゃう…。

例えば、こんな感じのコードを書くと、結果は"0.100000″ってなっちゃう。

double value = 0.1;
NSString* string = [NSString stringWithFormat:@"%f",value];
NSLog( @"%@", string );

コンソールの結果はこんな感じ。

2011-01-02 13:38:51.342 Calculate[35743:a0f] 0.100000

でも、NSNumberを介して変換するとうまいこと出来るみたい。
手順としてはこんな感じ。

  1. double型(あるいはfloat型)の変数をNSNumberのinitWithDoubleメソッドで変換
  2. NSNumberのstringValueメソッドでNSString型に変換

コードとしてはこんな感じかな。

// 変数の定義
double value = 0.1;
// NSNumberにいったん変換する
NSNumber* number = [[NSNumber alloc] initWithDouble:value];
// 小数点以下の0を除去して文字列に変換する
NSString* strings = [number stringValue];
// 結果をコンソールへ出力する
NSLog( @"%@", strings );

コンソールに表示した結果はこんな感じになる。

2011-01-02 13:41:22.932 Calculate[35798:a0f] 0.1

これで小数点以下の余分な0を除去できたかも。
もっとウマい方法があるかもしれないけど、とりあえず分かる範囲のメモってことで。