1

たとえば、フロートを表す文字列があります2400.0。数字 ( ) としてフォーマットしたいのです2,400.0が、数字記号の後にゼロを保持する必要があります。

NSString* theString = @"2400.0"; 

// I convert the string to a float 
float f = [theString floatValue]; 
// here I lose the digit information :( and it ends up with 2400 instead of 2400.0

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setUsesSignificantDigits:YES];
[formatter setMinimumFractionDigits:1];
[formatter setMaximumFractionDigits:2];
[formatter setLocale:[NSLocale currentLocale]];

NSString *result = [formatter stringFromNumber:@(f)];

NSLogは、私が必要な間resultです2,4002,400.0

正しい文字列を取得するにはどうすればよいですか?

4

4 に答える 4

4

minimumFractionDigitsおそらく、を 1に設定したいと思うでしょう(maximumFractionDigitsこの場合はあなたも)。

また、有効数字を使用したくない場合もあります。次のコードは、目的の出力を生成します。

NSString *theString = @"2400.0";

float f = [theString floatValue];

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMinimumFractionDigits:1];
[formatter setMaximumFractionDigits:1];
[formatter setLocale:[NSLocale currentLocale]];

NSLog(@"%@", [formatter stringFromNumber:@(f)]);
于 2014-01-31T08:57:06.500 に答える
0

簡単、

次に、これを表示するだけです:

myLabel.text = @"%0.1f", f;
于 2014-08-01T14:39:59.143 に答える