hash / pound(#)在格式字符串中表示什么?

时间:2009-06-11 08:30:42

标签: objective-c string formatting

我有一些代码来格式化文件大小字符串:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setPositiveFormat: @"#,##0.## bytes"];

@"#,##0.## bytes"是否与我在stringWithFormat中使用的格式字符串相同?哈希/磅符号在这里意味着什么?

4 个答案:

答案 0 :(得分:8)

#通常会被一个数字替换(如果存在),如果不存在,则不会被替换。 如果存在一个数字,则0将被替换;如果不存在,则将其替换为零。

因此,对于以下格式化'## 00.00 ##',您将获得以下输出:

1 => 01.00
12.1 => 12.10
1234.5 => 1234.50
1.2345 => 01.2345

答案 1 :(得分:4)

它们被称为占位符。

  

占位符

     

你使用英镑符号字符(#)   表示数字字符   将由用户输入。对于   例如,对于积极的模式   “$#,## 0.00”,如果是字符76329   进入了一个小区   模式已经应用,他们会   显示为$ 76,329.00。严格   但是,你说不需要   使用占位符。格式字符串   “,0.00”,“#,#0.00”和“#,## 0.00”是   在功能上等同。其他   单词,包括分隔符   在模式字符串信号   NSNumberFormatter使用   分隔符,不管你是否   使用(或放置)占位符。   占位符角色的主管   美德在于它的制作能力   模式字符串更易读,   这对于特别有用   在用户中显示模式   接口

来源:http://developer.apple.com/documentation/InternetWeb/Reference/WO542Reference/com/webobjects/foundation/NSNumberFormatter.html

答案 2 :(得分:2)

'#'表示一个可选的数字位置,如果该位置的0位数不会出现,而0表示该数字将始终显示。

我们以345.5为例:

#,##0.## = 345.5
0,000.00 = 0,345.50

答案 3 :(得分:1)

'#'在大多数语言中用作可选数字,而不是'0',这是一个必需数字(用于获取前导/尾随零)。