NSStringをfloat値に変換していますが、ログに記録される結果は次のとおりです。
2,146.952 as a float is 2.000000
カンマを使用すると、float値が切り捨てられるようです。doubleValueを使用すると、同じようになります。
これを実現する方法はあります2146.952
か?
NSStringをfloat値に変換していますが、ログに記録される結果は次のとおりです。
2,146.952 as a float is 2.000000
カンマを使用すると、float値が切り捨てられるようです。doubleValueを使用すると、同じようになります。
これを実現する方法はあります2146.952
か?
NSNumberFormatterを使用する必要があります。
形式が常にshow(ソース:Server api)の場合は、decimalSeparatorをに設定し、groutingSeparatorをに設定し.
ます,
。
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setDecimalSeparator:@"."];
[numberFormatter setGroupingSeparator:@","];
NSNumber *number = [numberFormatter numberFromString:numberString];
文字列の形式がユーザー設定(キーボードからの入力)に何らかの形で依存する場合は、代わりにロケールを設定してください
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale currentLocale]];
NSNumber *number = [numberFormatter numberFromString:numberString];
次のようなロケールを設定した場合、2番目のソリューションは最初のケースにも使用できます
[numberFormatter setLocale: [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
試す、
1) 文字列からカンマを削除します。
NSString * str = [str stringByReplacingOccurencesOfString:@"," withString:@""];
2) 文字列から float 値を次のように取得します。
float f = [str floatValue];