【问题标题】:Format a float to pad with leading spaces格式化浮点数以填充前导空格
【发布时间】:2013-02-15 17:29:06
【问题描述】:

我可以用前导零得到我想要的结果,但它不适用于空格。

[NSString stringWithFormat:@"%05.2f", 2.1]; // 02.10

但是,以下方法不起作用:

[NSString stringWithFormat:@"% 5.2f", 2.1]; // 2.10

这也不是:

[NSString stringWithFormat:@"%5.2f", 2.1]; // 2.10

【问题讨论】:

  • 将空格放在模数之前,而不是模数之后。
  • 数字怎么能包含前导空格?
  • 你怎么知道它没有用?试试“[%5.2f]”看看有没有前导空格,应该有4个,如果不行,可能是objective c库没有实现吧?
  • 你可以尝试设置字段宽度,[NSString stringWithFormat:@"%*.2f", 5, 2.1]
  • @CodaFi - 我不认为你理解我的问题。我想用空格将浮点值填充到最小宽度,而不仅仅是在数字前放一个空格。

标签: objective-c cocoa-touch nsstring number-formatting


【解决方案1】:

我刚试过,它穿了:

printf("%s\n", [[ NSString stringWithFormat:@"% 5.2f\n", 2.1 ] UTF8String ] ) ;

给了

 2.10

哪个是正确的...也许问题出在其他地方?

编辑

如果您不使用固定宽度的字体,您可以使用\t 代替插入制表符

【讨论】:

    【解决方案2】:

    我认为我的原始解决方案与@ColWhi 和@nielsbot 建议的一样有效...我认为问题在于字体(Helvetica)的空格比字符窄...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多