保留小数点后位数
Double dValue = 95.12345;
int iValue = 10000;
string strValue = "95.12345";
string result = "";
result = Convert.ToDouble(dValue).ToString("0.00");//保留小数点后两位,结果为95.12
result = Convert.ToDouble(iValue).ToString("0.00");//10000.00
result = Convert.ToDouble(strValue).ToString("0.00");//95.12
result = Convert.ToDouble(dValue).ToString("P");//得到小数点后2位的百分比,自动加上%号;//9512.35%
result = Convert.ToDouble(strValue).ToString("f4");//保留小数点后4位; //95.1235
//要注意的一点是 Convert.ToDouble一定要是这种双精度的,不然会报错。
为避免出错,建议统一需要计算的变量Num类型为double,这样上面代码还可以简化为这样:
result = Num.ToString("0.00");//保留小数点后两位,结果为95.12
result = Num.ToString("0.00");//10000.00
result = Num.ToString("0.00");//95.12
result = Num.ToString("P");//得到小数点后2位的百分比,自动 加上%号;//9512.35%
result = Num.ToString("f4");//保留小数点后4位; //95.1235
额外用法示例:保留小数点后,添加至result最后一行
result.Add("Area: " + Area.ToString("f3"));
result.Add(N[i].ToString("f10"));
字符串数字格式化用法一览表
字符串—标准数字格式化
格式符 |
属性 |
描述 |
示例 |
“C”或“c” |
货币 |
结果:货币值。 |
123.456 ("C", en-US) -> $123.46 |
“D”或“d” |
十进制 |
结果:整型数字,负号可选。 |
1234 ("D") -> 1234 |
“E”或“e” |
指数(科学型) |
结果:指数表示法。 |
1052.0329112756 ("E", en-US) -> 1.052033E+003 |
“F”或“f” |
定点 |
结果:整数和十进制小数,负号可选。 |
1234.567 ("F", en-US) -> 1234.57 |
“G”或“g” |
常规 |
结果:更紧凑的定点表示法或科学记数法。 |
-123.456 ("G", en-US) -> -123.456 |
“N”或“n” |
数字 |
结果:整数和十进制小数、组分隔符和十进制小数分隔符,负号可选。 |
1234.567 ("N", en-US) -> 1,234.57 |
“P”或“p” |
百分比 |
结果:数字乘以 100 并以百分比符号显示。 |
1 ("P", en-US) -> 100.00 % |
“R”或“r” |
往返过程 |
结果:可以往返至相同数字的字符串。 |
123456789.12345678 ("R") -> 123456789.12345678 |
“X”或“x” |
十六进制 |
结果:十六进制字符串。 |
255 ("X") -> FF |
任何其他单个字符 |
未知说明符 |
结果:在运行时引发 FormatException。 |
字符串—自定义数字格式化
格式符 |
属性 |
描述 |
示例 |
“0” |
零占位符 |
用对应的数字(如果存在)替换零;否则,将在结果字符串中显示零。 |
1234.5678 ("00000") -> 01235 |
"#" |
数字占位符 |
用对应的数字(如果存在)替换“#”符号;否则,不会在结果字符串中显示任何数字。 |
1234.5678 ("#####") -> 1235 |
"." |
小数点 |
确定小数点分隔符在结果字符串中的位置。 |
0.45678 ("0.00", en-US) -> 0.46 |
"," |
组分隔符和数字比例换算 |
用作组分隔符和数字比例换算说明符。 作为组分隔符时,它在各个组之间插入本地化的组分隔符字符。 作为数字比例换算说明符,对于每个指定的逗号,它将数字除以 1000。 |
组分隔符说明符: |
"%" |
百分比占位符 |
将数字乘以 100,并在结果字符串中插入本地化的百分比符号。 |
0.3697 ("%#0.00", en-US) -> %36.97 |
"‰" |
千分比占位符 |
将数字乘以 1000,并在结果字符串中插入本地化的千分比符号。 |
0.03697 ("#0.00‰", en-US) -> 36.97‰ |
“E0” |
指数表示法 |
如果后跟至少一个 0(零),则使用指数表示法设置结果格式。 “E”或“e”指示指数符号在结果字符串中是大写还是小写。 跟在“E”或“e”字符后面的零的数目确定指数中的最小位数。 加号 (+) 指示符号字符总是置于指数前面。 减号 (-) 指示符号字符仅置于负指数前面。 |
987654 ("#0.0e0") -> 98.8e4 |
“\” |
转义符 |
使下一个字符被解释为文本而不是自定义格式说明符。 |
987654 ("\###00\#") -> #987654# |
'string' |
文本字符串分隔符 |
指示应复制到未更改的结果字符串的封闭字符。 |
68 ("# 'degrees'") -> 68 degrees |
; |
部分分隔符 |
通过分隔格式字符串定义正数、负数和零各部分。 |
12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35 |
其他 |
所有其他字符 |
字符将复制到未更改的结果字符串。 |
68 ("# °") -> 68 ° |