小数点后的数字
此示例将double格式化为具有固定小数位数的字符串.对于两位小数,请使用模式"0.00".如果浮点数的小数位数较少,则右侧的其余数字将为零.如果它有更多的小数位,则数字将被舍入.
// just two decimal places
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
Run Code Online (Sandbox Code Playgroud)
下一个示例将double格式化为带有浮动小数位数的字符串.例如,对于最大两位小数,使用模式"0.##".
// max. two decimal places
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
Run Code Online (Sandbox Code Playgroud)
小数点前的数字
如果您希望浮点数在小数点前具有任何最小位数,请在小数点前使用N倍零.例如,模式"00.0"将浮点数格式化为字符串,小数点前至少有两位数,之后是一位数.
// at least two digits before decimal point
String.Format("{0:00.0}", 123.4567); // "123.5"
String.Format("{0:00.0}", 23.4567); // "23.5"
String.Format("{0:00.0}", 3.4567); // "03.5"
String.Format("{0:00.0}", -3.4567); // "-03.5"
Run Code Online (Sandbox Code Playgroud)
千分离器
要使用千位分隔符将double格式化为字符串,请在通常的浮点格式化模式之前使用零和逗号分隔符,例如模式"0,0.0"将数字格式化为使用千位分隔符并具有一个小数位.
String.Format("{0:0,0.0}", 12345.67); // "12,345.7"
String.Format("{0:0,0}", 12345.67); // "12,346"
Run Code Online (Sandbox Code Playgroud)
零
零和一之间的浮点数可以用两种方式格式化,小数点前有或没有前导零.要在没有前导零的情况下格式化数字#在点之前#.例如,"#.0"格式编号为小数点后一位,小数点前为0到N位(例如".5"或"123.5").
下面的代码显示了如何格式化为零(双重类型).
String.Format("{0:0.0}", 0.0); // "0.0"
String.Format("{0:0.#}", 0.0); // "0"
String.Format("{0:#.0}", 0.0); // ".0"
String.Format("{0:#.#}", 0.0); // ""
Run Code Online (Sandbox Code Playgroud)
将数字与空格对齐
要将浮点数对齐,请在冒号前使用逗号","选项.键入逗号后跟多个空格,例如"0,10:0.0"(这只能在String.Format方法中使用,而不能在double.ToString方法中使用).要将数字对齐到左侧,请使用负数空格.
String.Format("{0,10:0.0}", 123.4567); // " 123.5"
String.Format("{0,-10:0.0}", 123.4567); // "123.5 "
String.Format("{0,10:0.0}", -123.4567); // " -123.5"
String.Format("{0,-10:0.0}", -123.4567); // "-123.5 "
Run Code Online (Sandbox Code Playgroud)
负数和零的自定义格式
如果需要使用自定义格式表示负浮点数或零,请使用分号分隔符";"将模式拆分为三个部分.第一部分格式为正数,第二部分格式为负数,第三部分格式为零.如果省略最后一节,则将使用第一部分格式化零.
String.Format("{0:0.00;minus 0.00;zero}", 123.4567); // "123.46"
String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46"
String.Format("{0:0.00;minus 0.00;zero}", 0.0); // "zero"
Run Code Online (Sandbox Code Playgroud)
http://www.csharp-examples.net/string-format-double/
使用格式字符串解释如下:
例如,尝试:
(0.56789).ToString("F2")(0.56789).ToString("0.00").请注意,结果值不会被截断,而是在两种情况下都会舍入,从而导致"0.57".