在objective-c中添加字符串中的整数

时间:2012-06-21 07:19:29

标签: objective-c string floating-point integer add

例如我在两个字符串中有“$ 100”和“$ 50”,我想添加它们以获得输出“$ 150”。 我知道一般方法(将它们转换为整数并添加它们),但我正在寻找一种不会调用许多函数的简短方法

3 个答案:

答案 0 :(得分: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];

答案 1 :(得分: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;

答案 2 :(得分:0)

我认为你最好把价格储存在CGfloat上。

显示字符串“$ 100”是前端任务,计算价格总和是后端任务。这两个应该分开。

如果您将价格存储为CGFloat,您只需进行数学计算即可。 当你想要显示那个字符串时,juz会实现一个方法。

- (NSString *)priceLabel:(CGFloat) _price {
     return [NSString stringWithFormat: @"$.1f", _price];
}

此外,在编码时不要害怕制作前端Helper模型。我把所有这种小方法都放在这个模型中作为类方法。无论您何时需要重复使用此方法,只需导入模型即可。

相关问题