【发布时间】:2015-05-15 12:02:02
【问题描述】:
我正在处理需要相互减去的货币价值。我读到 NSNumber 可以很好地处理货币,但是我无法减去两个 NSNumber。有没有更好的处理货币的方法,还是我遗漏了一些小东西?
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSNumber* number = [numberFormatter numberFromString:bDict[@"booking_deposit"]];
if (!number) {
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
number = [numberFormatter numberFromString:bDict[@"booking_deposit"]];
}
NSNumber* number2 = [numberFormatter numberFromString:bDict[@"booking_total"]];
if (!number2) {
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
number2 = [numberFormatter numberFromString:bDict[@"booking_total"]];
}
NSLog(@"result %@",number2 - number);//warning here
这是警告:
Arithmetic on pointer to interface 'NSNumber', which is not a constant size for this architecture and platform
【问题讨论】:
-
NSNumber除了包装原始数字类型以存储在 Objective-C 集合类中之外,什么也不提供。还尝试使用-减去两个对象表明您不了解对象的工作原理(或者您假设运算符重载)。 -
@trojanfoe 谢谢你将如何处理货币?