String.Format,Console.WriteLine 以及数值对象的 ToString 方法经常使用一些格式符来将数字表达转换为特定的数字格式。这种格式符有两类:
(1)标准格式符
符号
表示的格式(格式符号不区分大小写)
C
货币,如果C后跟有数字,表示小数的位数。如345.65666.ToString("C3")
D
10进制数(可指定最少的固定数位),它仅仅显示数值的数字,并且只与整数使用。如果后面跟有数字,则会在左边补充0来凑齐这个数字的位数。比如:Console.WriteLine(“{0:d7}”, -99999)显示的是7个位数的-0099999。
E
科学计数法
F
定点小数(可指定最少的小数位), 如”{0:f3}”,-123.4456 显示为-123.446。
G
常规类型数字,要么科学记数法格式要么定点格式(依据哪个更紧凑)。
N
用逗号千分符隔开的数字。如用N3表示-1235.35566显示为-1,235.356。
P
百分数。如用P2表示1.23455显示为123.46%。
R
Round-trip 保证从浮点小数到字符类型和返回转变被允许。根据数据类型和值,这可能需要17位精确度。如带有R标识符的1/7显示为0.14285714285714285,如果不带此标志,显示为0.142857142857143。R转来转去不损失精度,整数不允许用。只有Single和 Double类型支持此格式。往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先使用常规格式对其进行测试:Double使用15位精度,Single使用7位精度。如果此值被成功地分析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化:Double使用17位精度,Single使用9位精度。虽然此处可以存在精度说明符,但它将被忽略。使用此说明符时,往返过程优先于精度。
X
16进制数(X的字格大小决定了高于9的16进制位所用字母的大小写),只适用于整数。如果X后跟有一个精确度指定符,它表示结果应该包含的数字位,如果有必要,左边补充0。如带有X4的183显示为00b7。
(2)自定义格式符
自定义字符
代表
0
一个数值或0占位(位置上无则补0),如12.ToString(”000.00”)-> 012.00
#
一个数字占位(位置上无则不显示)
%
表示变成百分数表达。如0.123.ToString(”.00%)-> 12.30%
.
小数点
,
若用于#或0之间,则表示千分进位符1234.ToString(”#,#”)-> 1,234
若紧挨着后面的小数点,则表示该数值显示为除以1000的结果。如1234567.ToString(”#,#,.”)-> 1,235
;
根据被格式对象的数字值的正负,分别
分隔在值为正、负、零时自定义的字符格式
\
避字符。如12.ToString(”#\%”)-> 12%; 12.ToString(”#%”)-> 1200%
E0或e0组合
科学记数法,将E或e插入到数值和它指数之间。用#或0来格式化指数位置前的数值。E后的0数目决定了指数的位数。如果你在E和0之间放置了一个+号,结果的指数就会包括一个+或-号;如果你略去了+号,指数只有在为负值时才会包括一个负号。如1234.5678.ToString(“00.000E+000”)显示为 12.346E+002。MsgBox(1.ToString("00E000"))显示为10E-001。
“ABC”
‘abc’
原样引用单双引号里的格式文字。如12.ToString(”#’%’”)-> 12%
(更多语法基础知识见本人的视频课程《VB .NET 编程语法知识 ( Visual Basic 2022 )》)