0

我不确定下一步该怎么做。它们只是文本字段中的美元金额。我正在尝试将它们加在一起。

NSString *checkAmount = [checkAmountInput.text substringFromIndex:1];
NSDecimalNumber *checkAmountValue = (NSDecimalNumber*)[NSString stringWithFormat:@"%@",checkAmount];
NSLog(@"%@", checkAmountValue);

NSString *bankBalance = [bankBalanceInput.text substringFromIndex:1];
NSDecimalNumber *bankBalanceValue = (NSDecimalNumber*)[NSString stringWithFormat:@"%@",bankBalance];
NSLog(@"%@", bankBalanceValue);

NSDecimalNumber *totalAmount = 

NSLog(@"%@",totalAmount);

当我尝试使用 decimalNumberByAdding 我得到:

'-[__NSCFString decimalNumberByAdding:]: unrecognized selector sent to instance 0x8a39a10'

也许我做错了这一切......但我只是重新开始。

4

2 回答 2

5

你的checkAmountValueand bankBalanceValueare 实际上不是NSDecimalNumber实例。将 anNSString转换为 anNSDecimalNumber将使编译器警告静音,但对象仍然只是字符串。

您可以使用从字符串decimalNumberWithString:创建实际NSDecimalNumber实例:

NSString *bankBalance = [bankBalanceInput.text substringFromIndex:1];
NSDecimalNumber *bankBalanceValue = [NSDecimalNumber decimalNumberWithString:bankBalance];
于 2013-06-21T02:57:35.397 回答
0

那里有一些混合的代码。实际上,您想要做的是从两个中获取文本NSTextFields,并将它们转换为NSDecimalNumbers并添加它们。你当然可以这样做。请注意NSTextField,也可以直接“解析”字符串值并直接返回数字类型(int、double、float):

double d = [textField doubleValue];

如果您仍然想使用 NSDecimalNumber,并从 NSString 中解析它:

NSString *s = [textField stringValue];

要将字符串转换为 NSDecimalNumber:

NSDecimalNumber *n1 = [NSDecimalNumber decimalNumberWithString:s]
NSDecimalNumber *n2 = // repeat as above for the second string

要将它们加在一起:

NSDecimalNumber *n3 = [n1 decimalNumberByAdding:n2];

请注意,是一个类工厂方法,它通过解析字符串decimalNumberWithString来创建 的实例。NSDecimalNumber在您的情况下,您只是简单地转换为 this ,这实际上并没有创建您需要的类型。

于 2013-06-21T03:05:44.350 回答