1

在我正在编写的 iOS 应用程序中,我收到一个带有价格字符串表示的 json 对象,如下所示:

{
  "price":"20000"
}

而且我想用逗号格式化它以便于阅读,我找到了一种方法,但我觉得它是一个疯狂的笨拙(我可能只是没有在谷歌中使用正确的术语)。

 NSNumberFormatter *formatter = [NSNumberFormatter new];
 [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
 NSString price = [NSString stringWithFormat:@"$%@", [formatter stringFromNumber:[NSNumber numberWithInteger:[price intValue]]]];

对我来说,要获得正确的格式,我必须这样做似乎过于复杂

  1. 将 NSString 转换为 int。
  2. 将 int 转换为 NSNumber。
  3. 将 NSNumber 转换为 NSString。
  4. 创建一个具有正确格式的新字符串(@david/@wain 向我展示了如何删除这一步!)
4

2 回答 2

6

最好的货币将是NSNumberFormatterCurrencyStyle

NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *price = @([priceTextFromJSON doubleValue]);
NSString *priceText = [formatter stringFromNumber:price];
于 2013-06-22T15:21:25.660 回答
1

你所拥有的很好。

[NSDecimalNumber decimalNumberWithString:price]如果它不是整数,您可以更好地处理源价格。

您可以使用[formatter setCurrencySymbol:@"$"]来处理符号而不是stringWithFormat.

这些更改将使您的实现更加健壮和优雅。

于 2013-06-22T15:23:05.883 回答