自定义格式
格式化数字的另一种方法就是图形格式化指定符。下面的详细列出了各种图形指定符,根据用户需要,你可以用他们来创建自己的数字格式:
* 0:如果格式化字符串中出现了0,那么被格式化的数值所对应的数字就被拷贝到输出字符串。
* .:显示被格式化数据的小数部分。只能识别源数值中的一个小数点。
* ,:这是一个组分隔符(group separator),它用作千位符(插在整数部分的两个数字之间)。此外,如果原数值在紧挨小数点的地方有一个或者多个组分隔符,那么,这个原数值将被这个数除,然后再乘以1000之后再进行格式化。
* #:格式化字符串中#对应的被格式化数值有数字,那么该数字就被拷贝到输出字符串。
* % :在这个字符串的指定位置放入百分号,数值在被显示之前乘以100。
* E+0、e+0、e-0、E-0:如果合适的化,把数值格式化为指数的形式。
* \ :字符引用
* 'abc' 或者“abc" :字符串值
* ;:段分隔符(section separator)
你可以联合使用多个自定义格式指定符,这样你就可以创建项目所需的任何种输出方式。看看用这些组合你可以实现什么,你会觉得这很酷。段分隔符(即分号)是功能最强大的自定义格式指定符之一。当数是正值、负值或者是零时,你可以用段分隔符来显示该数的字符串表示。此外,正值、负值或者是零之外的所有数值都直接发送到输出端。也就是说,通过把美元符($)和数子放到合适的位置上,你可以轻松的显示多少美元。下面的 VB.NET代码片断演示了自定义格式指示符的用法:
Dim tst As Integer = 550000
System.Console.WriteLine("{0:#0;(#0)}", tst)
System.Console.WriteLine("{0:#0}%", tst)
System.Console.WriteLine("{0:$#.00 dollars is a lot of money!}", tst)
System.Console.WriteLine("{0:#E+0}", tst)
System.Console.WriteLine("{0:#e-0}", tst)
tst = -125000
System.Console.WriteLine("{0:#0;(#0);<value is zero>}", tst)
tst = 0
System.Console.WriteLine("{0:#0;(#0);<value is zero>}", tst)
上述代码的运行结果为:
550000
550000%
$550000.00 dollars is a lot of money!
6E+5
6e5
(125000)
<value is zero>
这个例子演示了段分隔符的用法以及如何实现传递字符到输出端口、格式化成指数还有货币和百分比的用法。
选择你的格式
有了.NET格式指示符,你就可以根据用户要求来“剪裁”程序输出。猛一看,这些语法似乎有些高深莫测,但一旦你知道了基本规则之后,它就显得非常易用。
本文作者Tony Patton的职业生涯开始于应用程序开发员,并已经获得了Java、VB、Lotus和XML的认证,以增加其专业知识。
