C#数字类型输出字符串时保留指定⼩数位数的⽅法
1、使⽤占位符:
1)
float f = 321.12345F;
f.ToString("0.00");
这样做⽆论f是不是整数,都将加上2位⼩数。
2)
float f = 321.12345F;
f.ToString(".##");
这样做最多显⽰2位⼩数
占位符的定义如下:
(0)Digit placeholder. Display a digit or a zero. If the expression has a digit in the position where the 0 appears in the
format string, display it; otherwi, display a zero in that position.
If the number has fewer digits than there are zeros (on either side of the decimal) in the format expression, display
leading or trailing zeros. If the number has more digits to the right of the decimal parator than there are zeros to
the right of the decimal parator in the format expression, round the number to as many decimal places as there
are zeros. If the number has more digits to the left of the decimal parator than there are zeros to the left of the
decimal parator in the format expression, display the extra digits without modification.
(#)Digit placeholder.Display a digit or nothing. If the expression has a digit in the position where the # appears in the format string, display it; otherwi, display nothing in that position.
This symbol works like the 0 digit placeholder, except that leading and trailing zeros aren't displayed if the number
has the same or fewer digits than there are # characters on either side of the decimal parator in the format
expression.
(.)Decimal placeholder. In some locales, a comma is ud as the decimal parator. The decimal placeholder determines how many digits are displayed to the left and right of the decimal parator. If the format expression
contains only number signs to the left of this symbol, numbers smaller than 1 begin with a decimal parator. To
display a leading zero displayed with fractional numbers, u 0 as the first digit placeholder to the left of the
英语答题卡模板decimal parator. The actual character ud as a decimal placeholder in the formatted output depends on the
Number Format recognized by your system.
(,)Thousand parator. In some locales, a period is ud as a thousand parator. The thousand parator parates thousands from hundreds within a number that has four or more places to the left of the decimal
parator. Standard u of the thousand parator is specified if the format contains a thousand parator
surrounded by digit placeholders (0 or #). The actual character ud as the thousand parator in the formatted
output depends on the Number Format recognized by your system.
("ABC")Literal string. You can place literal strings on either side of numeric placeholders. For example, you could define a format expression as "The formatted number is: ###,###.#0"
在msdn中搜索FormatString property可得到
2、使⽤标准数字格式字符串
如:
float f = 321.12345F;
f.ToString("F3");
结果为321.123
标准数字格式字符串的定义如下:
格
soundtrack式说明符名
称
说明
C
乔丹名人堂演讲C
do the best
或c 货币
数字转换为表⽰货币⾦额的字符串。转换由⽤于格式化数字的 NumberFormatInfo 对象的货币格式信息控制。精度说明符指⽰所需的⼩数位数。如果省略精度说明符,则使⽤ NumberFormatInfo 给定的默认货币精度。
D 或d ⼗进
制数
只有整型才⽀持此格式。数字转换为⼗进制数字 (0-9) 的字符串,如果数字为负,则前⾯加负号。精度说明符指⽰结果字符串中所需的最少数字个数。如果需要的话,则⽤零填充该数字的左侧,以产⽣精度说明符给定的数字个数。
E 或e 科学
电影love主题曲计数
法
(指
数)
数字转换为“-d.ddd…E+ddd”或“-d.ddd…e+ddd”形式的字符串,其中每个“d”表⽰⼀个数字 (0-9)。如果该数字为负,则该字符串以减号开头。⼩数点前总有⼀个数字。精度说明符指⽰⼩数点后所需的位数。如果省略精度说明符,则使⽤默认值,即⼩数点后六位数字。格式说明符的⼤⼩写指⽰在指数前加前缀“E”还是“e”。指数总是由正号或负号以及最少三位数字组成。如果需要,⽤零填充指数以满⾜最少三位数字的要求。
F 或f 固定
guess是什么意思emome点
数字转换为“-ddd.ddd…”形式的字符串,其中每个“d”表⽰⼀个数字 (0-9)。如果该数字为负,则该字符串以减号开头。精度说明符指⽰所需的⼩数位数。如果忽略精度说明符,则使⽤ NumberFormatInfo 给定的默认数值精度。
G
或g 常规
根据数字类型以及是否存在精度说明符,数字会转换为固定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字的类型决定默认精度,如下表所⽰。
Byte 或 SByte:3
Int16 或 UInt16:5
Int32 或 UInt32:10
Int64 或 UInt64:19
Single:7
Double:15
Decimal:29
如果⽤科学记数法表⽰数字时指数⼤于 -5 ⽽且⼩于精度说明符,则使⽤固定点表⽰法;否则使⽤科学记数法。如果要求有⼩数点,并且忽略尾部零,则结果包含⼩数点。如果精度说明符存在,并且结果的有效数字位数超过指定精度,则通过舍⼊删除多余的尾部数字。使⽤科学记数法时,如果格式说明符是“G”,结果的指数带前缀“E”;如果格式说明符是“g”,结果的指数带前缀“e”。
struct上述规则有⼀个例外:如果数字是 Decimal ⽽且省略精度说明符时。在这种情况下总使⽤固定点表⽰法并保留尾部零。商检局
N
或n 数字
数字转换为“-d,ddd,ddd.ddd…”形式的字符串,其中每个“d”表⽰⼀个数字 (0-9)。如果该数字为负,则该字符串以减号开头。⼩数点左边每三个数字之间插⼊⼀个千位分隔符。精度说明符指⽰所需的⼩数位数。如果忽略精度说明符,则使⽤
NumberFormatInfo 给定的默认数值精度。
P 或p 百分
⽐
数字转换为由 NumberFormatInfo.PercentNegativePattern 属性或 NumberFormatInfo.PercentPositivePattern 属性定义的、表⽰百分⽐的字符串。如果数字为负,则产⽣的字符串由 PercentNegativePattern 定义并以负号开头。已转换的数字乘以 100 以表⽰为百分⽐。
冲上云霄2所有歌曲精度说明符指⽰所需的⼩数位数。如果省略精度说明符,则使⽤ NumberFormatInfo 给定的默认数值精度。
R 或r 往返
过程
往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使⽤此说明符格式化数值时,⾸先使⽤常规格式对其进⾏测试:Double 使⽤ 15 位精度,Single 使⽤ 7 位精度。如果此值被成功地分析回相同的数值,则使⽤常规格式说明符对其进⾏格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化:Double 使⽤ 17 位精度,Single 使⽤ 9 位精度。虽然精度说明符可以追加到往返过程格式说明符,但它将被忽略。使⽤此说明符时,往返过程优先于精度。此格式仅受浮点型⽀持。
X 或x ⼗六
进制
数
数字转换为⼗六进制数字的字符串。格式说明符的⼤⼩写指⽰对⼤于 9 的⼗六进制数字使⽤⼤写字符还是⼩写字符。例如,使⽤“X”产⽣“ABCDEF”,使⽤“x”产⽣“abcdef”。精度说明符指⽰结果字符串中所需的最少数字个数。如果需要的话,则⽤零填充该数字的左侧,以产⽣精度说明符给定的数字个数。只有整型才⽀持此格式。
在msdn中搜索“标准数字格式字符串”可得到
3、使⽤System.Math.Round函数可以指定⼩数位数。