2012-05-10 5 views
0

私は使用しているWebサービスからJSON文字列を取得していますが、項目の1つは「1.2」のような形式のfloatです。 しかし、私は実際にはこれを時間番号のように表示したいので、このようにします: "01:20"。カスタムフォーマットを使用してfloatをNSStringに変換しますか? ( "xx:yy")

これを行う最も簡単な方法は何ですか?

私は文字列にfloatを変換して2枚

timeValue = [NSString stringWithFormat:@"%.2f", timeValue]; 
NSArray *tmpArr = [timeValue componentsSeparatedByString:@"."]; 
NSString *tmpFirst = (NSString *)[tmpArr objectAtIndex:0]; 
NSString *tmpSecond = (NSString *)[tmpArr objectAtIndex:0]; 

にそれを分割何とか、私はそれを変換するとき、それは負の数

のNSLog(@」私を返すことについて考え

timeValue:%@ "、timeValue);

TIMEVALUE:-1.99

+0

「*」を置き換えるだけです。とともに ":"?私はポストのあなたのものがログに記録された時間の値と関係しているものを使用していません... *また、float( "f")を期待するフォーマットにNSStringを渡すと奇妙な結果につながります*。 * one * issueに焦点を当て、問題が(タイトル内に)掲載されているようにしてください。 –

+0

それはちょうど私に "1:2"を与え、私はそれを "01:20"と表示したいので、余分な2つのゼロを追加する必要があります。 返される値は時間の量ですが、浮動小数点数の形式です –

+0

ああ、確かに。いずれにしても、コメントの第2部分に注意してください。私がそれをする方法は、よく知らなくても、入力文字列を表す 'float'を取得し、' format( "%02d:%02d"、(int)f、 (int)(f * 100)) '' f 'は以前に得られた 'float'値です。投稿されたコードでは、 'timeValue'は' NSString'(または何か「割り当て可能」)であり、 'float'ではありません。 –

答えて

0

私はこの問題は、この行であると思います。

timeValue = [NSString stringWithFormat:@"%.2f", timeValue]; 

私は、なぜあなたは二度同じ変数を使用している場合ではないTIMEVALUEはタイプNSStringのだと思います。
このようにする必要があります

timeValueString = [NSString stringWithFormat:@"%.2f", timeValueFloat]; 
+0

timeValueは関数によって渡される変数だったので、その値を再利用するだけです。 私はtmpValue = [timeValue stringValue];を使用することができました。 –

+0

あなたは文字列ではなく浮動小数点数を期待する書式指定子%fを使用しています... –

関連する問題