【发布时间】:2012-09-02 15:24:07
【问题描述】:
我有两种货币价值:2.60 英镑和 22,000 英镑。两者都在 Core Data 中存储为NSDecimalNumber。我使用以下内容从它们创建一个字符串:
// The app will be GB only, which is the reason locale is set to en_GB
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setLocale: locale];
[formatter setNumberStyle: NSNumberFormatterCurrencyStyle];
// job is a Core Data entity, value1 and value2 or NSDecimalNumbers
NSString *value1 = [formatter stringFromNumber: [job value1]]; // 2.60
NSString *value2 = [formatter stringFromNumber: [job value2]]; // 22000
NSString *testString = [NSString stringWithFormat:@"%@ and %@", value1, value2];
这作为一个整体工作正常,但testString 打印为 2.60 英镑和 22,000.00 英镑。
仅针对 largeValue 实现 [formatter setMaximumFractionDigits: 0]; 的最佳方式是什么?
【问题讨论】:
-
我刚刚意识到我的实体中有另一个属性可以用于此切换,所以我会这样做。如果将来有适当的方法来处理这个问题,我仍然愿意回答。
标签: iphone objective-c nsnumberformatter