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を介して変換するとうまいこと出来るみたい。
手順としてはこんな感じ。
- double型(あるいはfloat型)の変数をNSNumberのinitWithDoubleメソッドで変換
- 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を除去できたかも。
もっとウマい方法があるかもしれないけど、とりあえず分かる範囲のメモってことで。