数字格式
如果“格式”属性不以百分比符号 (%) 开头,并且不包含任何 (@) 符号,则将按数字格式代码进行格式化。 这种格式化方式要求“字符串”是一个浮点值。 “格式”属性支持以下格式说明符:
说明符 |
说明 |
---|---|
“0”数字占位符 |
如果被格式化的值在格式字符串中“0”出现的位置上有一个数字,那么该数字将被复制到输出字符串中。 否则,会将“0”存储在输出字符串中的那个位置。 |
# 数字占位符 |
如果被格式化的值在格式字符串中“#”出现的位置上有一个数字,那么该数字将被复制到输出字符串中。 否则,输出字符串中的那个位置上不会存储任何东西。 |
.小数点 |
格式字符串中的第一个“.”字符决定了小数点分隔符在格式化值中的位置;任何额外的“.”字符将被忽略。 |
, 千位分隔符 |
如果格式字符串包含一个或多个“,”字符,输出时将在小数点左边的每组三位数之间插入一个千位分隔符。 格式字符串中“,”字符的位置和数量不影响输出,除了要表明使用了千位分隔符的情况。 |
E+ 科学计数法 |
如果格式字符串中包含“E+”、“E-”、“e+”或“e-”中的任何一个字符串,则使用科学计数法对数字进行格式化。 一组最多由 4 个“0”组成的字符可以紧跟在“E+”、“E-”、“e+”或“e-”之后,以决定指数中数字的最小位数。 “E+”和“e+”格式会为正指数输出一个加号,为负指数输出一个负号。 “E-”和“e-”格式仅为负指数输出符号字符。 |
'xx'/"xx" |
用单引号或双引号括起来的字符按原样输出,不会影响格式。 |
; |
这个字符在格式字符串中分隔正数、负数和零。 |
格式字符串中小数点前最左的“0”和格式字符串中小数点后最右的“0”的位置决定了输出字符串中始终出现的数字范围。
被格式化的数字通常按照小数点右边数字占位符(“0”或“#”)的数量来四舍五入至小数位。 如果格式字符串不包含小数点,则被格式化的值将四舍五入至最接近的整数。
如果被格式化的数字的小数点分隔符左边的数字多于格式字符串内“.”字符左边的数字占位符,多出的数字会输出于第一个数字占位符前。
为了让正、负和零值具有不同的格式,格式字符串可以包含 1 到 3 个由分号分隔的部分:
- 一个部分:格式字符串适用于所有值。
- 两个部分:第一部分适用于正值和零值,第二部分适用于负值。
- 三个部分:第一部分适用于正值,第二部分适用于负数,第三部分适用于零值。
如果用于负值的部分或用于零值的部分为空,即分隔该部分的分号之间没有任何内容,则使用用于正值的部分。
如果用于正值的部分为空,或者如果整个格式字符串为空,则使用具有 15 位有效数字的通用浮点格式对该值进行格式化。 如果值在小数点左边有超过 18 位数字,并且格式字符串没有指定科学记数法,也会使用通用浮点格式。
下表列出了在“格式”和“字符串”属性中输入的值的示例:
格式属性 |
字符串属性: 1.234 |
字符串属性: -1.234 |
字符串属性: 0.5 |
字符串属性: 0 |
---|---|---|---|---|
0 |
1.234 |
-1.234 |
0.5 |
0 |
0.00 |
1.234.00 |
-1.234.00 |
0.50 |
0.00 |
#.## |
1.234 |
-1.234 |
.5 |
|
#,##0.00 |
1.234.00 |
-1,234.00 |
0.50 |
0.00 |
#,##0.00;(#,##0.00) |
1.234.00 |
(1,234.00) |
0.50 |
0.00 |
#,##0.00;;Zero |
1.234.00 |
-1,234.00 |
0.50 |
Zero |
0.000E+00 |
0.000E+03 |
-1.234E+03 |
5.000E-01 |
0.000E+00 |
#.###E-0 |
1.234E3 |
-1.234E3 |
5E-1 |
0E0 |