2

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

4

3 回答 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”是前端任务,计算价格总和是后端任务。这两个应该分开。

如果您将价格存储为 CGFloat,您可以简单地进行数学运算。当你想显示那个字符串时,juz 实现一个方法。

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

此外,在编写代码时不要害怕制作 Front-end Helper 模型。我把所有这些次要方法都放在这个模型中作为一个类方法。无论您需要在哪里重用此方法,您都可以简单地导入模型。

于 2012-06-21T07:58:09.920 回答