格式化数字字符串

标准数字格式字符串:

C or c  货币     "{0:C}" -f 1.23   结果:¥1.23 或 $1.23

D or d 十进制  "{0:d3}" -f 2       结果:002 (在前面补0,补足3位)

E or e 科学计数法 "{0:E3}" -f [Math]::Pi 结果:3.142E+000

F or f 固定的点。精确说明小数点后的位数 "{0:F3}" -f [Math]::Pi 结果:3.142

N or n 数字 "{0:N4}" -f 1mb 结果:1,048,576.0000

P or p 百分比 "{0:P4}" -f 0.67 结果:67.0000%

 

 #####################################

{0:N0}
最开头的0(分号前面的0)表示被格式化项目的索引序号. 以后使用时, 只需要在这里填上0, 格式化命令就会很好得为你工作.
字符N表示了应用的格式类型; 这个例子中, 字符N就是Numeric的缩写. 那着里还有其他我们可以应用的格式吗? 当然还有了, 我们稍后会再介绍一些的.
第二个0(字符N后面的0)被称为“精度指示符,” 当与数字格式结合使用时, 用于指示显示几位小数点后数字.
例:
"{0:N2}" -f 554.22272 = 554.22

 #####################################

 

 (10).ToString({0.0})  结果: 10.0
 
 [math]::Round(3.1415926,4) 

 (0.6666).tostring('P') 结果:66.66%

 [string]::Format('{0:p1}',0.1234) 结果:12.3%

 

自定义数字格式字符串:

0 零占位符    "{0:00.0}" -f 4.12341234 结果:04.1

# 数字占位符  "{0:##.#}" -f 4.12341234 结果:4.1  

, 千位分隔符   "{0:#,#.#}" -f 1234.12341234 结果:1,234.1 

,, 缩放比例  如果放置在格式文本(或隐式)小数点之前时,将会除以1000    “{0:##,,.000}” -f 1048576 结果:1.049

% 百分比,将输入乘以100,并插入百分号  “{0:%##.000}” -f .68 结果:68.000%

'text' 文本字符串,插入按原义提供的文本到输出,而不会影响格式 "{0:#.00'##'}" -f 2.71828 结果:2.72##

Other 其他字符,插入按原义提供的文本到输出,而不会影响格式 "{0:$## Please}" -f 14 结果:$14 Please

 

"iii{0:d2}" -f 2  返回结果:iii02

$a=1
$a.tostring('d2') 返回结果:01

 

##############################################################################

参考:http://www.pstips.net/setting-numeric-formats.html

格式化操作符 -f 可以将数值插入到字符串,每一个通配符都有统一的结构。

{index[,alignment][:format]}:

  •  Index:

索引编号用来识别把那个值用来替换通配符。例如你可能使用了多个通配符,或者同一个通配符使用了多次,甚至多种格式。此时,索引编号是唯一能够识别那个值将用来替换。另外两个选项Alignment和Format则作为辅助条件

  • Alignment:

正数和负数,可以指定目标值是否左对齐或者右对齐。还可以支持数值以指定的宽度显示,如果数值的实际宽度大于指定宽度,则忽略指定宽度。如果数值宽度小于指定宽度,剩余的部分会以空白填充,这一选项非常利于制表。

  • Format:

数值可以被格式化成许多不同的类型,下面会预览这些你可能会用到一些格式概要。

格式化语句比较特殊,大小写敏感,这和PowerShell中其它语句的使用稍有不同。下面举个例子:

# 使用小写字母d:格式化
"Date: {0:d}" -f (Get-Date)
 
Date: 2013/5/31
 
# 使用大写字母D:格式化
"Date: {0:D}" -f (Get-Date)
Date: 2013年5月31

符号

类型

调用示例

输入结果

#

数字占位符

“{0:(#).##}” -f $value

(1000000)

%

百分号

“{0:0%}” -f $value

100000000%

,

千分符

“{0:0,0}” -f $value

1,000,000

,.

一千的整数倍

“{0:0,.} ” -f $value

1000

.

小数点

“{0:0.0}” -f $value

1000000.0

0

占位符 0

“{0:00.0000}” -f

$value

1000000.0000

c

货币

“{0:c}” -f $value

¥1,000.00

d

十进制

“{0:d}” -f $value

1000000

e

科学计数法

“{0:e}” -f $value

1.000000e+006

e

指数通配符

“{0:00e+0}” -f $value

10e+5

f

保留小数位

“{0:f}” -f $value

1000000.00

g

常规

“{0:g}” -f $value

1000000

n

千分符

“{0:n}” -f $value

1,000,000.00

x

十六进制

“0x{0:x4}” -f $value

0x4240

使用上面表格中,你可以快速并舒服地格式化数值,例如千分符的使用可以让用户避免去纠结,1后面到底跟了几个0,是10万呢,还是100万。

另外PowerShell还提供了非常丰富的日期格式化选项,相关的格式见下表。

符号

类型

调用示例

输出

d

短日期格式

“{0:d}” –f $value

2013/6/1

D

长日期格式

“{0:D}” –f $value

2013年6月1日

t

短时间格式

“{0:t}” –f $value

“{0:t}” –f $value

T

长时间格式

“{0:T}” –f $value

23:18:50

f

完整日期和时间(短)

“{0:f}” –f $value

2013年6月1日 23:18

F

完整日期和时间(长)

“{0:F}” –f $value

2013年6月1日 23:18:50

g

标准时间 (短)

“{0:g}” –f $value

2013/6/1 23:18

G

标准时间长 (长)

“{0:G}” –f $value

2013/6/1 23:18:50

M

月日格式

“{0:M}” –f $value

6月1日

r

RFC1123 日期格式

“{0:r}” –f $value

Sat, 01 Jun 2013 23:18:50 GMT

s

排序日期格式

“{0:s}” –f $value

2013-06-01T23:18:50

u

通用日期格式

“{0:u}” –f $value

2013-06-01 23:18:50Z

U

通用排序日期 GMT格式

“{0:U}” –f $value

2013年6月1日 15:18:50

Y

年/月格式模式

“{0:Y}” –f $value

2013年6月

自定义日期格式

dd

一个月中天

“{0:dd}” -f $value

01

ddd

星期的缩写

“{0:ddd}” -f $value

周六

dddd

完整星期

“{0:dddd}” -f $value

星期六

gg

纪年法

“{0:gg}” -f $value

公元

hh

小时0-12

“{0:hh}” -f $value

11

HH

小时0-23

“{0:HH}” -f $value

23

mm

分钟

“{0:mm}” -f $value

18

MM

月份

“{0:MM}” -f $value

06

MMM

月份缩写

“{0:MMM}” -f $value

六月

MMMM

完整月份

“{0:MMMM}” -f $value

六月

ss

“{0:ss}” -f $value

55

tt

上午或者下午

“{0:tt}” -f $value

下午

yy

两位数字的年份

“{0:yy}” -f $value

13

yyyy

四位数字的年份

“{0:yyyy}” -f $value

2013

zz

不包含分钟的时区

“{0:zz}” -f $value

+08

zzz

包含分钟的时区

“{0:zzz}” -f $value

+08:00

 

posted on 2014-06-30 15:17  momingliu11  阅读(3021)  评论(0编辑  收藏  举报