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 )》)