【问题标题】:NumberFormatter - ObjectiveCNumberFormatter - ObjectiveC
【发布时间】:2011-01-22 01:52:41
【问题描述】:

如何创建一个数字格式化程序来用逗号格式化大数字?

例如,2389378.289 应该变成 2,389,378.289

请注意,并不总是有三位小数,也不一定总是有小数位。请使用 NSNumberFormatter。

谢谢!

【问题讨论】:

    标签: objective-c numberformatter


    【解决方案1】:
    NSNumberFormatter *fmt = [[[NSNumberFormatter alloc] init] autorelease];
    [fmt setAlwaysShowsDecimalSeparator:NO];
    [fmt setFormat:@"#,##0.###"];
    NSLog(@"%@",[fmt stringFromNumber:[NSNumber numberWithFloat:35.424252]]);
    NSLog(@"%@",[fmt stringFromNumber:[NSNumber numberWithFloat:21.3]]);
    NSLog(@"%@",[fmt stringFromNumber:[NSNumber numberWithFloat:10392425]]);
    

    Chuck 为您提供的格式最多支持 3 位小数。如果你有一个小于 3 的数字,它们就不会出现。 Chuck 也是正确的,你想看看 Unicode 数字格式指南,它对于数字格式问题非常宝贵。

    【讨论】:

      【解决方案2】:

      格式为@"#,##0.###"。查看the Unicode number format guide,了解如何构造格式字符串的完整说明。

      (另请注意,这在逗号和点颠倒或使用其他字符的语言环境中可以正常工作。)

      【讨论】:

      • 你能告诉我使用 NSNumberFormatter 的完整的 Objective-C 代码吗?请注意,它并不总是小数点后 3 位,甚至根本不总是有小数点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 2017-01-20
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多