たとえば、2 つの文字列に "$100" と "$50" があり、それらを追加して "$150" という出力を得たいとします。一般的な方法(整数に変換して加算する方法)は知っていますが、多くの関数を呼び出さない、より短い方法を探しています。
3 に答える
3
NSNumberFormatter を使用して文字列をNSNumberに解析し、それらを合計してから String に戻すことができます。
NSString *strNum1 = "$100";
NSString *strNum2 = "$150";
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber * myFirstNumber = [f numberFromString:strNum1];
NSNumber * mySecNumber = [f numberFromString:strNum2];
NSNumber *sum = [NSNumber numberWithFloat:([myFirstNumber floatValue] + [mySecNumber floatValue])];
NSString * strSum = [f stringFromNumber:sum];
于 2012-06-21T07:35:56.823 に答える
1
float result = [[fiftyBucks substringFromIndex:1] floatValue] + [[hundredBucks substringFromIndex:1] floatValue];
またはNSScannerを使用しますが、少し長くなりますが、より確実/安全になります:
float fifty, hundred, result;
[[NSScaner scannerWithString: fiftyBucks] scanFloat: &fifty];
[[NSScaner scannerWithString: hundredBucks] scanFloat: &hundred];
result = fifty + hundred;
于 2012-06-21T07:27:28.793 に答える
0
代わりに CGfloat に価格を保存した方がよいと思います。
文字列「$100」を表示するのがフロントエンド タスクで、価格の合計を計算するのがバックエンド タスクです。この 2 つは分離する必要があります。
価格を CGFloat として保存すると、簡単に計算できます。そして、その文字列を表示したい場合は、メソッドを実装します。
- (NSString *)priceLabel:(CGFloat) _price {
return [NSString stringWithFormat: @"$.1f", _price];
}
さらに、コーディング時にフロントエンド ヘルパー モデルを作成することを恐れないでください。このようなマイナーなメソッドはすべて、クラス メソッドとしてこのモデルに入れました。このメソッドを再利用する必要がある場合は、モデルをインポートするだけです。
于 2012-06-21T07:58:09.920 に答える